我有以下LINQ查询,它使用NHibernate对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();
Run Code Online (Sandbox Code Playgroud)
但是,它抱怨SQL Server无法按CaseOwner.Name列分组,因为它不包含在选择列表或组子句中.来自数据库世界我理解错误,但是,我不知道如何强制NHibernate按两者分组Id,Name但仍然CaseOwner可以在我的Select中使用该实体.