我使用session.query,它第一次返回最新的数据库记录,我们在字段上编辑后填充到数据库上,然后再次执行这个查询没有从数据库获取更新的记录。数据库中的字段已更新但未获取更新的记录。下面session.Query没有从数据库获取更新的记录
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;
}
我NHibernate的查询,给出是否有任何更新的方法或东西我做错了。 任何帮助将不胜感激。谢谢
我不太了解NHibernate,但从我读的会话就像是一个UnitOfWork。在例子中,我看到一个新的会话被提取并关闭每个事务...你是否重新使用同一个会话? http://nhforge.org/doc/nh/en/index.html#quickstart-playingwithcats –
是的,我们正在使用相同的session.We已经删除“使用(var tr = session.BeginTransaction())”并检查功能但同样的事情正在发生 –
是不是你的问题,你正在使用同一个会话的事实... 你是否尝试过关闭每次提交事务的会话,就像我提供的链接一样? 我再次对NHibernate没有那么热,大约一年没有用过它。 'lstPeriods.Add(objPeriod)'''后面的 –