我有以下信息
var details = Details.Where(d => d.isActive);
我想查询具有FK到Authorizations
的另一个表Details
,并获取details
对象中包含的授权总和。 detail
和FundCode
。
详细信息(1对多)授权
看起来很简单,但是我遇到了一些麻烦。
以下是我目前的情况:
var account = (from sumOfAuths in Authorizations
where details.Contains(sumOfAuths.Details)
&& sumOfAuths.RequestStatusId == 2
group sumOfAuths by new { sumOfAuths.Detail, sumOfAuths.FundCode } into child
select new {
....
Amount = child.Amount
}).Sum()
问题是在.Sum()
函数内部我有对象集合而不是1.所以我不能正确地汇总金额。
答案 0 :(得分:3)
通常,您可以指定要合计的内容:
.Sum(x => x.Amount)
在群组中,您可以使用嵌套总和:
.Sum(x => x.Sum(y => y.Amount));
答案 1 :(得分:2)
我相信这个查询会产生你想要的东西:
var account = from c in Authorizations
where details.Contains(c.Details) && c.RequestStatusId == 2
group c by new { c.Detail, c.FundCode } into g
select new { Key = g.Key, Sum = g.Sum(x => x.Amount) };