Entity framework 实体框架有时不加载数据

Entity framework 实体框架有时不加载数据,entity-framework,caching,Entity Framework,Caching,在下面的示例中 using (var context = new MyEntities() { // Delete old data. foreach (var data obsoleteData) { context.DeleteObject(data); } // Create new data. var data = new DataEntity(); // Initialize data // ...

在下面的示例中

using (var context = new MyEntities() 
{       
   // Delete old data.
   foreach (var data obsoleteData)
   {
     context.DeleteObject(data);
   }

   // Create new data.
   var data = new DataEntity();

   // Initialize data
   // ...

   var id = FoundItem();
   var items = new List<MyItems>();
   foreach (var n in context.Sources)
   {
     var subItems = (from i in context.Entities1 
                     from g in i.Entity1Relations 
                     where g.Type == 0 && g.Id == id 
                     select i).ToList();

     Contract.Assert((from i in subItems 
             where i.SomeCount == 0 select i).FirstOrDefault() == null);
     items.add(FindSource(n, subItems);
   }

   foreach(var i1 in items)
   {
     data.SubItems.Add(i1);
   }

   context.SaveChanges();
}
这有时会断言,但数据库SomeCount始终>0

Entity1Relations是一个解析m:n的表

我假设实体框架不会每次都查询数据库


此问题的解决方案可用吗?

我在FindSource中发现一个错误,该错误修改了其他对象的SomeCount属性。因此,这与EF无关。

你能发布你的模型并描述一下你在做什么吗?例如,什么是过时数据,它来自哪里?您在初始化数据部分做什么?除此之外,您的命名约定对理解Entity1、Entity1关系没有多大帮助。这是一个简化的示例。我使用VS2010中生成的数据库生成的标准实体。这太棒了。正如我在前面的评论中提到的,若你们展示你们的模型并阐明你们想做什么,这可能会有所帮助。我尝试删除一个旧数据,然后用新创建的数据实体填充数据库。它们将由一些id解析项从中填充。请注意,解析基于查询关系表Entity1关系。我估计context.Entities1在本例中使用的是缓存数据,而不是真实数据。如何确保实体框架使用新数据?您使用的是哪个版本的EF?