我有一个问题,我还没能找到一个解决方案。为了简化问题:我有两个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