0
在下面的例子實體框架有時不加載數據
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的表。
我假設實體框架不會每次都查詢數據庫。
是否可以解決此問題?
你可以發佈你的模型,並描述你在做什麼?例如。什麼是'obsoleteData',它來自哪裏?你在'Initialize data'部分做了什麼?除此之外,您的命名約定對幫助理解('Entities1','Entity1Relations'?)沒有太大幫助。 – Yakimych 2011-05-26 19:43:47
這是一個簡化的例子。我使用標準生成的實體(來自VS2010中生成的數據庫)。 – 2011-05-26 19:56:47
太好了。正如我在之前的評論中提到的 - 如果你展示你的模型並澄清你想要做的事情,它可能會有所幫助。 – Yakimych 2011-05-26 20:13:36