NHibernate Linq Group By无法在SQL Server中正确分组

NHibernate Linq Group By无法在SQL Server中正确分组,linq,sql-server-2008,nhibernate,Linq,Sql Server 2008,Nhibernate,我有以下LINQ查询,它对SQL Server支持的存储库使用NHibernate var casesByCaseOwner = this.preGrantDetailRepository.All .Where(x => x.CaseFileLocation.Id == cflId) .GroupBy(x => x.CaseOwner) .Select(x => new StagSummaryForCfItem { Id = x.Key.Id

我有以下LINQ查询,它对SQL Server支持的存储库使用NHibernate

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
列进行分组,因为它不包含在select list或group子句中。来自一个数据库世界,我理解这个错误,但是,我不知道如何强制NHibernate按
Id
Name
进行分组,但在我的选择中仍然有
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这样做很有效,结果我需要用我想要分组的属性投影一个新实体