EF6加载相关集合成员的属性

时间:2014-12-20 15:09:35

标签: c# .net entity-framework-6

如果我有课程AccountAccountImageImage

public class Account{

   public virtual List<AccountImage> AccountImages{get;set;}
}


public class AccountImage{

   public virtual Image Image {get;set;}
}


public class Image{
   public string ImageUrl {get;set;}
}

我有一个Account对象想要加载Image集合的AccountImages个引用。

我可以像这样加载AccountImages

Db.Entry(v.acc).Collection(e => e.AccountImages).Load();

但我如何在不诉诸

的情况下加载Image
foreach(var ai in v.acc.AccountImages){
    Db.Entry(ai).Reference(e => e.Image).Load();
}

并引发多个db命中?

1 个答案:

答案 0 :(得分:2)

为避免显式加载中的foreach循环,您可以急切地加载导航属性:

var acc = db.Accounts.Include(a => a.AccountImages.Select(ai => ai.Image));