实体框架核心SelectMany然后包括

Mik*_*e U 5 c# entity-framework-core .net-core

我似乎无法弄清楚如何在使用SelectMany时让EF Core包含/加载相关对象.

context.MyObject
       .Where(w => w.Id == Id)
       .SelectMany(m => m.SubObject)
       .Include(i => i.AnotherType)
Run Code Online (Sandbox Code Playgroud)

本来会想到类似上面的东西会起作用,但是折叠的SubObject集合使AnotherObject为null并且不包括在内.

一直在寻找几个小时.

任何帮助,将不胜感激.

谢谢

Iva*_*oev 7

会想到像上面这样的东西会起作用

它曾经在EF6中工作,但目前不受EF Core支持 - 它允许您仅使用查询开始的实体的eager load,如文档中的" 加载相关数据 - 忽略的包含"部分所述:

如果更改查询以使其不再返回查询开头的实体类型的实例,则忽略包含运算符.

因此,要在您的方案中获得热切的加载工作,查询应该是这样的(假设您具有反向导航或FK属性SubObject):

context.SubObject
       .Where(so => so.Object.Id == Id) // or so.ObjectId == Id
       .Include(i => i.AnotherType)
Run Code Online (Sandbox Code Playgroud)