Dot-Net
EF LINQ 包括多個和嵌套的實體
好的,我有具有以下層次結構的三級實體:課程->模組->章節
這是原始的 EF LINQ 語句:
Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters)) .Single(x => x.Id == id);現在,我想包含另一個與課程相關聯的名為 Lab 的實體。
如何包含 Lab 實體?
我嘗試了以下但沒有奏效:
Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters) && i.Lab) .Single(x => x.Id == id);關於包括第二個實體的任何想法?
任何建議或資訊將不勝感激。謝謝!
您是否嘗試過添加另一個
Include:Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters)) .Include(i => i.Lab) .Single(x => x.Id == id);您的解決方案失敗,因為
Include不採用布爾運算符Include(i => i.Modules.Select(s => s.Chapters) && i.Lab) ^^^ ^ ^ list bool operator other list更新 要了解更多資訊,請下載LinqPad並查看範例。我認為這是熟悉 Linq 和 Lambda 的最快方法。
Select首先 -和之間的區別在於Include,使用 Select 您可以決定要返回的內容(也稱為投影)。Include 是一個Eager Loading函式,它告訴 Entity Framework 您希望它包含來自其他表的數據。Include 語法也可以是字元串。像這樣:
db.Courses .Include("Module.Chapter") .Include("Lab") .Single(x => x.Id == id);但LinqPad中的範例更好地解釋了這一點。