我對實體框架中DbContext的用法有點困惑。這是我很困惑的場景。實體框架和DbContext - 對象跟蹤
我使用dbcontext中的linq查詢來獲取數據。喜歡的東西:
List<Transactions> transactions = DefaultContext.Transactions.ToList();
然後我直接在數據庫在查詢返回的交易的一個更新的列。
然後我再打電話:
List<Transactions> transactions = DefaultContext.Transactions.ToList();
當列表返回這個時候,它並不能反映更新/運行更新語句時,除非我遍歷所有我所做的更改我的交易和重新加載他們:
foreach (DbEntityEntry<Transactions> item in DefaultContext.ChangeTracker.Entries<Transactions>())
{
DefaultContext.Entry<Transactions>(item.Entity).Reload();
}
這是正常的行爲?我假設在我最初的查詢中,它們被附加到對象上下文中。然後,當我第二次查詢時,它不會訪問數據庫,只是從對象上下文中提取實體,除非我清除/分離或單獨重新加載所有實體。
我需要過濾一些返回的數據。我正在使用一個.Where(...之前,但是現在我使用的是ObjectContext,它不知道我的實體類。現在如何過濾查詢中的數據?我不想返回整個結果 – mservidio
你的意思是「它不知道我的實體類」,你可以像寫DbContext一樣用ObjectContext編寫相同的linq查詢。 –
沒關係,我完全錯過了它的設置... – mservidio