2017-06-13 121 views
2

我似乎無法弄清楚如何讓EF Core在使用SelectMany時包含/加載相關對象。Entity Framework Core SelectMany然後包括

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

會想到類似上面的工作,但摺疊的SubObject集合的AnotherObject爲null並且不包含。

已經搜索了幾個小時。

任何幫助,將不勝感激。

感謝

回答

4

本來以爲像上面會工作

它用於EF6工作,但目前沒有被EF核心支持 - 它可以讓你只用渴望的負載該查詢開頭,如Loading Related Data提到的實體 - 忽略包括文檔部分:

如果更改查詢以使其不再返回查詢以開頭的實體類型的實例,則將忽略包含操作符。

因此,要獲得在您的方案預先加載工作,查詢應該是這樣的(假設你有逆導航或FK財產SubObject):

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