我使用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)'''後面的 –