如果我有以下班级模型......
public class A
{
public int AId { get; set; }
public ICollection<B> BCollection { get; set; }
}
public class B
{
public int BId { get; set; }
public ICollection<C> CCollection { get; set; }
}
public class C
{
public int CId { get; set; }
}
...是否可以从包含所有级联集合的数据库中急切加载A
类型的对象?
我可以像BCollection
这样包括:
A a = context.ASet.Where(x => x.AId == 1)
.Include(x => x.BCollection)
.FirstOrDefault();
我是否还可以以某种方式包含所有已加载CCollection
对象的B
,以便通过单个数据库查询获取内存中所有依赖对象的A
?
答案 0 :(得分:22)
同时使用.Include(x => x.BCollection.Select(b => b.CCollection))
described here。
它也适用于级联。每当您需要加载导航属性时,集合使用.Select
。