2010-05-07 127 views
2

我有以下信息Linq查詢問題

var details = Details.Where(d => d.isActive); 

我想查詢另一個表,Authorizations,具有FK到Details,並且得到了包含details對象中的授權的總和量按detailFundCode分組。

詳情(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,所以我不能正確總結的數額。

回答

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) }; 
3

一般情況下,你可以指定它是什麼,你要總結:

.Sum(x => x.Amount) 

在組中,你可以使用嵌套的總和:

.Sum(x => x.Sum(y => y.Amount));