在我的asp.net應用程序中,我打開並關閉/刷新每個請求開始/結束時的會話。如果您使用naitive身份,對象是否會立即持續存在?
採用這種設置,我認爲這將導致了諸如:
實體E = EntityDao.GetById(1);
e.Property1 =「blah」;
EntityDao.MakePersistant(e);
e = EntityDao.GetById(1);
e.Property1 //這不會是胡說,這將是舊值,因爲請求沒有刷新
但我注意到,返回的值是最近更新的值。 有人迴應說,因爲他們的方式我有我的身份設置?
有人可以解釋這種行爲嗎?所以我不需要調用flush來確保它堅持到db?
實際上看着sql profiler我看到數據庫調用是在會話期間進行的,因此它正在打擊db而不是從緩存中。 – mrblah 2009-12-28 23:17:23
你的MakePersistent()函數是什麼樣的?那可能是調用Session.Flush。 – 2009-12-28 23:22:09