我是實體框架的新手。實體框架緩存問題
我已經在我的數據庫中使用EF得到了一些值。它完美地返回,並且值顯示在標籤中。但是,當我刪除我的表中的所有值(不使用EF),EF查詢返回我的舊值。我知道EF將這些值存儲在緩存中,併爲隨後的運行返回緩存的數據。它是否正確?
那麼我怎樣才能解決問題,當我刪除我的數據庫中的所有值,但EF返回舊值?
編輯:
現在我使用datamodel.SaveChanges()
。但現在它返回相同的舊值。
我的示例查詢看起來象下面這樣:除非你重新查詢上下文
SchoolBriefcaseEntities datamodel = new SchoolBriefcaseEntities();
datamodel.SaveChanges();
List<Compliance> compliance=new List<Compliance>();
IList<ComplianceModel> complianceModel;
if (HttpContext.Current.User.IsInRole("SuperAdmin"))
{
compliance = datamodel.Compliances.Where(c => c.School.DistrictId == districtId).ToList();
}
您是否在您的dbContext上調用了'.SaveChanges();'如果你沒有這些實體將不會被刪除.. – Rob 2013-04-05 08:04:09
請閱讀我的完整問題。我沒有在代碼中使用刪除。我直接刪除了數據庫。數據庫 – 2013-04-05 08:05:49
您的上下文如何?當你需要時打開上下文,一旦完成就關閉它。 (您可能想要改進您的問題,但一點也不清楚) – 2013-04-05 08:07:18