EF在集合中显式加载集合

时间:2017-11-16 11:03:09

标签: c# entity-framework

简单的问题但是从实体框架MSDN示例和其他搜索中我无法看到正确的方法。

我可以像这样显式加载EF集合:

db.Entry(project).Collection(p => p.Reports).Load();

但是如果每个报告都有一个需要加载的页面列表,我该怎么做?我认为它是这样的:

db.Entry(project.Reports).Collection(r => r.Pages).Load();

但这不会起作用,因为' r'是一份报告的ICollection。在集合中加载集合的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用以下语法:

db.Entry(project).Collection(p => p.Reports)
  .Query()
  .Include(r => r.Pages).Load();

根据MSDN,Query ...

  

返回将用于从数据库加载此集合的查询。可以修改返回的查询

...这意味着Include也可以应用于它。