问题描述
|
在下面的例子中
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无关。