我使用nhibernate在DB中提交了一些数据。
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>();
}
但没有成功。我查看数据库,它在那里,但我无法从数据库中读取它。如何刷新会话或我必须做什么,我可以在保存后读取这些新数据。问题仅在我使用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 DateTime
schedule是DB对象类型(Table Schedules)
newScheduleDay是数据库对象类型(Table ScheduleDays)
我正在使用C#+流利的nhibernate 1.1
映射和延迟加载或asbag可能有问题吗?或者可能出现什么问题?
答案 0 :(得分:1)
我不知道问题,但这是我将如何调试它:
除非you tell it to,否则nHibernate不会缓存查询。
答案 1 :(得分:0)
嘿,你可以运行nhibernate探查器,看看有什么查询被触发。链接到nhprof.com
谷歌看看如何使用nhprof非常简单。 希望有所帮助