entity framework核心SelectMany然后包括

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

context.MyObject .Where(w => w.Id == Id) .SelectMany(m => m.SubObject) .Include(i => i.AnotherType) 

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

一直在寻找几个小时。

任何帮助,将不胜感激。

谢谢

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

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

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

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

 context.SubObject .Where(so => so.Object.Id == Id) // or so.ObjectId == Id .Include(i => i.AnotherType)