我有一个像这样的Lambda表达式:
model =
db.MyTable.Where(
x => x.deleted == false && x.MyDate.Month == monthInt && x.MyDate.Year == yearInt)
.GroupBy(x => x.codeAC.ACatagory.Text)
.Select(y => new MainAssignmentReportVM()
{
Title = y.Key,
Children = y.Select(z => new AssignmentReportVM()
{
Assignment = z.codeAC.text,
Location = z.codeLocation.Location,
Count =
y.Count(
t =>
t.codeAC.text == z.codeAC.text &&
t.codeLocation.Location == z.codeLocation.Location),
EachFlightTotal = y.Where(s => s.codeAC.text == z.codeAC.text && s.codeLocation.Location == z.codeLocation.Location).Sum(s => s.Flight.Value),
TotalFlightCombined = y.Sum(x => x.Flight.Value),
// AssignmentTotalCount -- This is where I need help
}).Distinct()
});
我在上面的代码中评论了我需要帮助的地方。 AssignmentTotalCount
应为Count
的总和。我如何在这个lambda表达式中实现这一点?
我在考虑将AssignmentTotalCount
作为一个只读属性并将其设置在课堂中,因为它不会被编辑,或者其他任何东西......但我不知道如何在课堂上设置它。 / p>
感谢任何帮助。
答案 0 :(得分:1)
如何将linq表达式放在外面
int sumCount = 0;
并在
之后做Count = y.Count(.....
此
sumCount += Count;``
答案 1 :(得分:1)
将AssignmentTotalCount
放在您放置的位置,取Count
的总和将始终与Count相同。
必须将其设置为更高一级,作为Title
和Children
的兄弟(因此类MainAssignmentReportVM
的属性而不是类AssignmentReportVM
)。那么你应该能够总结Count
。