我正在使用session.query,第一次返回最新的数据库记录,我们在编辑了我们保存在数据库上的字段后填充网格,然后我们再次执行此查询,然后它没有从数据库获取更新的记录。字段已在数据库中更新但未获取更新记录。
我的NHibernate查询在下面给出
List<FiscalPeriod> lstPeriods = new List<FiscalPeriod>();
using (var tr = session.BeginTransaction())
{
try
{
List<TSCFiscalPeriod> lstFiscalPeriods = session.Query<TSCFiscalPeriod>().ToList();
if (lstFiscalPeriods != null && lstFiscalPeriods.Count > 0)
{
foreach (var period in lstFiscalPeriods)
{
FiscalPeriod objPeriod = new FiscalPeriod();
objPeriod.Period = period.Id.FPeriod;
objPeriod.Name = "Period " + objPeriod.Period;
objPeriod.CompanyID = period.Id.FCompanyID;
objPeriod.Year = period.Id.FFiscalYear;
objPeriod.Begin = period.FBeginDate;
objPeriod.End = period.FEndDate;
objPeriod.OpenAP = FOpenAP(period.FOpen);
objPeriod.OpenGL = FOpenGL(period.FOpen);
objPeriod.SCFiscalPeriod = period;
objPeriod.IsExisting = true;
lstPeriods.Add(objPeriod);
}
}
tr.Commit();
}
catch (Exception ex)
{
lstPeriods = null;
CusException cex = new CusException(ex);
cex.Write();
}
return lstPeriods;
}
是否有任何刷新方法或我做错了什么。 任何帮助将不胜感激。谢谢
答案 0 :(得分:2)
Nhibernate会话是一个静态初始化程序。 有时会话无法刷新值。
所以你必须刷新并清除会话
session.flush();
session.clear();
答案 1 :(得分:2)
确保您在保存会话后使用session.clear()
或session.flush()
。