簡體   English   中英

實體框架核心SelectMany然后包括

[英]Entity Framework Core SelectMany then Include

我似乎無法弄清楚如何在使用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 load,如文檔中的“ 加載相關數據 - 忽略的包含”部分所述:

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

因此,為了在您的場景中獲得熱切的加載工作,查詢應該是這樣的(假設您在SubObject具有反向導航或FK屬性):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM