2011-02-06 36 views
10

我很難弄清楚CTP 5中的實體框架代碼首先的東西。它正在緩存對象,我不希望它。例如,我加載了一個加載對象的頁面(使用ASP.NET MVC網站)。然後我去改變數據庫。我重新加載頁面並且更改沒有反映出來。如果我殺了網站並重新運行它,那麼它顯然會重新獲取。我如何,通常是爲一個類型,甚至是一個特定的查詢,告訴它總是得到一個新的副本。我認爲這可能與MergeOption有關,但我無法找到適用於CTP 5的示例。謝謝。在實體框架CTP5中關閉對象緩存

回答

15

好吧,算出來。下面有時會從EF緩存拉:

return (from m in _dataContext.Monkeys 
     where m.MonkeyId == monkeyId 
     select m).FirstOrDefault(); 

您可以使用AsNoTracking()繞過更改跟蹤/緩存的東西:

return (from m in _dataContext.Monkeys.AsNoTracking() 
     where m.MonkeyId == monkeyId 
     select m).FirstOrDefault();