nhibernateでDBにデータをコミットします。DBから読み込むときにnhibernateセッションの問題が発生する
TimeSlices newTimeSlices = new TimeSlices(timeSliceStartTime, timeSliceEndTime, schedule, newScheduleDay);
tsDao.Save(newTimeSlices);
tsDao.CommitChanges();
しかし、私は、このデータを読み込もう
public ScheduleDays GetByDate(DateTime date, Schedules schedule)
{
NHibernateSession.Refresh(schedule);
DateTime tmpDate = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
return NHibernateSession.CreateCriteria(typeof (ScheduleDays))
.Add(Restrictions.Eq(ScheduleDaysProperties.Date.ToString(), tmpDate))
.Add(Restrictions.Eq(ScheduleDaysProperties.Schedule.ToString(), schedule))
.UniqueResult<ScheduleDays>();
}
けどなし成功。私はDBを見て、それはそこにありますが、私はDBからそれを読むことができません。どのように私はセッションをリフレッシュすることができますか、私はそれを保存した後、私はこの新しいデータを読むことができる必要があります。問題は私がajaxコンポーネントを使って作業しているときだけです。
public ScheduleDaysMap()
{
Id(x => x.ScheduleDayId);
Map(x => x.Date)
.Not.Nullable();
Map(x => x.MinutesOrderInterval)
.Not.Nullable();
References(x => x.Schedule)
.Column(TableNames.ScheduleId)
.Not.Nullable()
.LazyLoad();
HasMany(x => x.Orders)
.KeyColumn(TableNames.ScheduleDayId)
.Inverse()
.LazyLoad()
.AsBag();
HasMany(x => x.TimeSlices)
.KeyColumn(TableNames.ScheduleDayId)
.Inverse()
.LazyLoad()
.AsBag();
Version(x => x.Timestamp);
}
timeSliceStartTime、timeSliceEndTimeとnewTimeSlicesは型OD日時である
スケジュールDBオブジェクトタイプ(表スケジュール)
newScheduleDayは、DBオブジェクトタイプである(表ScheduleDays)
IでありますC#+流暢なnhibernateを使用しています。
マッピングと遅延ロードまたはasbagに問題がありますか?または何が間違っていることができますか?
+1優れたデバッグステップ。私は、手順2と3は*常に*非常に有用なので、開発中のすべてのプロジェクトでSQLがデフォルトでログオンしていることがわかりました。 – Ragesh
@Ragesh - うわー、バイナリブロブをデータベースにプッシュする場合は注意してください。実際にはバイナリのペイロードを16進数でエンコードしてログに記録します。 – fostandy
@fostandy、それは良い点です。個人的には、DBからブロブを守るために本当に頑張ってみると、私はその問題に遭遇したことはありません。そして、もちろん、私はロギングを開発中にのみ有効にしています。 – Ragesh