「autor.ComentariosWorkItens.Add(comentarioWorkItem);」
autor.ComentariosWorkItens使EF4加載所有ComentariosWorkItens。
出2:
comentarioWorkItem.Usuario =作者日期;
Fixup時使EF加載所有ComentariosWorkItens太:
private void FixupUsuario(Usuario previousValue)
{
if (previousValue != null && previousValue.ComentariosWorkItens.Contains(this))
{
previousValue.ComentariosWorkItens.Remove(this);
}
if (Usuario != null)
{
if (!Usuario.ComentariosWorkItens.Contains(this))
{
Usuario.ComentariosWorkItens.Add(this);
}
}
}
我如何避免這種情況?
With a Select Exists。 另一個例子:autor.ComentariosWorkItens.Count。 EF4也選擇全表,但只需要一個選擇計數。 我覺得NHibernate調用這個「Extra Lazy」 – 2010-06-07 10:38:12
不要混淆ObjectQuery和EntityCollection。 'MyObjectContext.Usarios.Where(u => u.Id == id).Firsd()。ComentariosWorkItems.Count()'將*不*選擇用戶的所有行。在一個實例上做同樣的事情。瞭解LINQ to Objects和LINQ to Entities之間的區別。 – 2010-06-07 12:20:39
但是會選擇所有的ComentariosWorkItems表 – 2010-06-08 01:21:54