我有一個用戶和管理員部分的應用程序。如果管理員使用sql數據源更新數據,那麼它會更新數據庫。但是,當我們用linq查詢檢索數據時,它顯示的是舊值而不是更新後的值。Linq更新問題
經過一段時間,linq查詢會自動顯示正確的值。
我認爲它的緩存價值,但我發現自己很無奈。請幫我解決一下這個。
我有一個用戶和管理員部分的應用程序。如果管理員使用sql數據源更新數據,那麼它會更新數據庫。但是,當我們用linq查詢檢索數據時,它顯示的是舊值而不是更新後的值。Linq更新問題
經過一段時間,linq查詢會自動顯示正確的值。
我認爲它的緩存價值,但我發現自己很無奈。請幫我解決一下這個。
當你說
當我們與LINQ查詢
檢索數據你的意思是你再次撥打您的選擇方法或者您使用的是當前內存中的對象?
在這兩種情況下,你可以隨時刷新的實體:
Context.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity)
確保您有效使用DataContext
(理想情況下每單位工作一個)。
每次更新後,請確保您致電DataContext.SubmitChanges();
將更改提交回數據庫。
另外請注意,將您的更改添加到另一個上下文並調用SubmitChanges()
的任何上下文都不會反映這些更改。
感謝 當我更新與SQL數據源的數據只有那個時候我否則得到這個問題,它的工作的罰款。 但它更新數據庫。 – 2009-10-09 20:04:54
但linq查詢顯示舊數據 – 2009-10-09 20:05:42
請確保您在使用Sql Datasouce更新數據前未創建DataContext(如果您使用Linq來檢索數據,則應該使用它來更新數據)。 – 2009-10-09 20:07:10