我是实体框架的新手。实体框架缓存问题
我已经在我的数据库中使用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