一個孫子我有這樣的結構:獲取所有的父母,但只有一個兒子和一個條件
Topics.SubTopics.Events
Topics.Users
Users.Topics
Topics
和Users
是一個多一對多的關係。
我想檢索PremiereDateTimeInUtc
(事件的屬性)爲equal or greater then yesterday
和Topics.Users.Id == userId
的所有主題,子主題和事件。但每個主題只能檢索1個事件(從昨天開始的第一個事件)。而且只有作爲事件父項的子專題。但主題必須全部歸還,即使是沒有主題和事件的主題。
我想這個至今:
return context.Topics
.Include(
t => t.SubTopics.Select(
s => s.Events
.Any(e => e.PremiereDateTimeInUtc >= DateTime.Today.AddDays(-1))
)
)
.Where(t => t.Users.Any(u => u.Id == userId)).ToList();
但是,這是行不通的。我得到以下異常:「包含路徑表達式必須引用在該類型上定義的導航屬性。對於參考導航屬性使用虛線路徑,對集合導航屬性使用選擇運算符 參數名稱:path」。
第一個問題:這不是什麼'Include'用於:它所做的就是列出使用初始查詢加載*列*的子表。它根本不參與LINQ過濾。 –
@MikeEdenfield我應該看看/使用哪種方法呢? –