作者:摄影爱好者Summer_100 | 来源:互联网 | 2023-02-01 13:30
我似乎无法弄清楚如何在使用SelectMany时让EF Core包含/加载相关对象.
context.MyObject
.Where(w => w.Id == Id)
.SelectMany(m => m.SubObject)
.Include(i => i.AnotherType)
本来会想到类似上面的东西会起作用,但是折叠的SubObject集合使AnotherObject为null并且不包括在内.
一直在寻找几个小时.
任何帮助,将不胜感激.
谢谢
1> Ivan Stoev..:
会想到像上面这样的东西会起作用
它曾经在EF6中工作,但目前不受EF Core支持 - 它允许您仅使用查询开始的实体的eager load,如文档中的" 加载相关数据 - 忽略的包含"部分所述:
如果更改查询以使其不再返回查询开头的实体类型的实例,则忽略包含运算符.
因此,要在您的方案中获得热切的加载工作,查询应该是这样的(假设您具有反向导航或FK属性SubObject
):
context.SubObject
.Where(so => so.Object.Id == Id) // or so.ObjectId == Id
.Include(i => i.AnotherType)