0
在我的DBMS上,我有兩個具有一對多關係的表(A <-B)。 在第一次運行時,我檢索像這樣的(含乙級)的一些記錄:如何忽略遞歸緩存數據以完全獲取數據庫存儲?
var lst = from a in ctx.As.Include("Bs") select a;
所以,一切正常。 但幾分鐘後,我想再次獲取它們,因爲它們可以在其他應用程序中更改。
我試圖用
ctx.Refresh(RefreshMode.StoreWins, lst);
當我做到這一點,唯一的東西被刷新爲B對象,而不是A. 所以,我必須做這樣一個步驟:
foreach (var a in lst) {
ctx.Refresh(RefreshMode.StoreWins, a.Bs);
}
如果我沒有在linq聲明中包含Bs
,那麼也可以,然後使用Load
方法代替Refresh
這裏的問題是呼叫Refresh
或Load
太多次可能會降低性能。如何在沒有太多調用的情況下從數據庫存儲中重新加載它們?
謝謝!
謝謝!有用!另外,我想保留上下文,以便可以將實例的某些更改保存到數據庫中。因爲如果我使用另一個上下文,它會拋出一個異常。對不起,我的愚蠢,我是一個新的實體框架! –