2012-01-29 11 views
11

で正しくグループに失敗した...NHibernateはLINQのグループ化は、私はリポジトリを裏付けSQL Serverに対してNHibernateはを使用して、次のLINQクエリを持っているSQL Serverの

var casesByCaseOwner = this.preGrantDetailRepository.All 
    .Where(x => x.CaseFileLocation.Id == cflId) 
    .GroupBy(x => x.CaseOwner) 
    .Select(x => new StagSummaryForCfItem 
    { 
     Id = x.Key.Id, 
     Description = x.Key.Name, 
     NumberOfCases = x.Count(), 
     UninvoicedNetFee = x.Sum(y => y.UninvoicedNetFee), 
     UninvoicedDisbursement = x.Sum(y => y.UninvoicedDisbursement) 
    }).AsEnumerable(); 

しかし、それはSQL Serverがグループにできないと文句を言いCaseOwner.Name列は、選択リストまたはグループ句に含まれていないためです。しかし、データベースの世界から来て私は、エラーは、私はどのようにNHibernateをグループ化してIdNameを強制するか分からないが、まだCaseOwnerエンティティを私の選択で利用できるようにしています。私は答えは最後に...

 var casesByCaseOwner = this.preGrantDetailRepository.All 
    .Where(x => x.CaseFileLocation.Id == cflId) 
    .GroupBy(x => new { x.CaseOwner.Id, x.CaseOwner.Name }) 
    .Select(x => new StagSummaryForCfItem 
    { 
     Id = x.Key.Id, 
     Description = x.Key.Name, 
     NumberOfCases = x.Count(), 
     UninvoicedNetFee = x.Sum(y => y.UninvoicedNetFee), 
     UninvoicedDisbursement = x.Sum(y => y.UninvoicedDisbursement) 
    }).AsEnumerable(); 

    return casesByCaseOwner; 

これはnicley作品見つけ

答えて

6

、それは私が上でグループ化するプロパティを持つ新しいエンティティを投影する必要が判明しました。

関連する問題