我有一個問題,我還沒能找到一個解決方案。爲了簡化問題:我有兩個SQL表,我正在使用LinQ to SQL。這兩個表代表課程,其中CourseType包含CourseName和TotalSpots,CourseInstance包含CourseDate,AmountSignedUp和CourseType的引用。 CourseType和CourseInstance之間有一對多關係。Linq orderby與子列表項目總和相比,主項目項目
現在我需要幫助的是Linq查詢/ Lambda表達式來排序CourseType和CourseInstance(如果它是可行的)。我希望在總共有多少個免費點(根據CourseType; CourseType.TotalSpots - CourseInstance.SignedUp下的每個CourseInstance進行計算)之後對CourseType進行排序,其中最空閒點的CourseType最先顯示。我希望CourseInstance能被排序模擬,由CourseInstance擁有多少個免費點(CourseType.TotalSpots - CourseInstance.AmountSignedUp)。
我無法理解如何解決這個問題。我已經看過類似的問題和問題,這是我到目前爲止,只是爲了給出一個基本的想法:
編輯:我已經完成了此代碼,將正確排序CourseType。我不確定如何獲得CourseInstance子列表的排序(CourseType.CourseInstance)。我想我將不得不在代碼中將它轉換爲列表,除非有人爲此提供了一個好的解決方案。我可以這樣做,因爲阿里昂建議,爲什麼我會標記他的答案。
var result= (
from c in _db.CourseType
orderby ((c.TotalSpots * c.CourseInstance.Count) - c.CourseInstance.Sum(
ci => (ci.AmountSignUp ?? 0))) descending
select c
);
感謝您的快速答覆Arion!我會讓結果只包含CourseType,而不是CourseType和CourseInstance。理由是CourseInstance將成爲CourseType的子列表,然後當我需要包含它的對象時,我可以查詢這個子列表。我希望將CourseType和子列表CourseInstance都分類。這是可行的還是您建議的解決方案,只有列表排序的解決方案?乾杯 – 2012-04-23 07:13:34
那爲你修好了嗎? @ user1350598:記得投票答案,你認爲是好的。這給了我們一種溫暖的模糊感覺:P – Arion 2012-04-23 12:13:01