实体框架有时不会加载数据

时间:2011-05-26 19:19:24

标签: 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
   // ...

   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始终是&gt; 0!

Entity1Relations是一个解析m:n的表。

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

是否可以解决此问题?

1 个答案:

答案 0 :(得分:0)

我在FindSource中发现了一个错误,修改了其他对象的SomeCount属性。所以它与EF无关。