我有一個使用lambda表達式的查詢,我希望能夠從父表的子集中的列中進行排序。查詢看起來是這樣的:如何訂購通過在lambda表達式中使用子集合
var query = ctx.Timelines.Include("Rule.DocumentRules").Where(...).OrderBy(o => o.Rule.DocumentRules.OrderBy(t => t.SortOrder));
的SortOrder的列駐留3個級別上深下時間表實體,我不知道用來訪問哪些擴展。當我使用上面的代碼時,出現錯誤「DbSortClause表達式必須具有可比較的類型 參數名稱:key」。如果我使用選擇擴展而不是第二個OrderBy,我會得到相同的錯誤。有誰知道我可以通過這個專欄排序嗎?這個「SortOrder」列不是主鍵或外鍵。
感謝
按順序排列整個子實體序列是無意義的。只有將子實體集合成單個值纔可以用於排序是有意義的。這可以通過選擇一個實體(通過'First()')或使用匯總運算符(如Max和Sum)來完成。 –
它看起來像你試圖在同一時間多個東西排序?時間軸和documentRules之間是否存在1對1的關係? –