.net 使用NHibernate上的QueryOver获取具有限制的子项计数
如何使用.net 使用NHibernate上的QueryOver获取具有限制的子项计数,.net,nhibernate,queryover,.net,Nhibernate,Queryover,如何使用QueryOver和无公式字段执行以下操作 我有以下亲子关系 公共班级俱乐部 { 公共字符串名称{get;set;} 公共IList成员身份{get;set;} } 公共班级成员资格 { 公共布尔取消{get;set;} 公共俱乐部{get;set;} } 我有以下查询,返回15个俱乐部并将结果转换为DTO,我需要在此查询中添加属于每个俱乐部且未取消的会员资格的RowCount IEnumerable results=\u querySession.QueryOver() .Order
QueryOver
和无公式字段执行以下操作
我有以下亲子关系
公共班级俱乐部
{
公共字符串名称{get;set;}
公共IList成员身份{get;set;}
}
公共班级成员资格
{
公共布尔取消{get;set;}
公共俱乐部{get;set;}
}
我有以下查询,返回15个俱乐部并将结果转换为DTO,我需要在此查询中添加属于每个俱乐部且未取消的会员资格的RowCount
IEnumerable results=\u querySession.QueryOver()
.OrderBy(c=>c.IsActive).Desc
.OrderBy(c=>c.Name).Asc
.SelectList(list=>list
.Select(c=>c.Id).WithAlias(()=>sum.Id)
.Select(c=>c.Name).WithAlias(()=>sum.Name)
.Select(c=>c.IsActive).WithAlias(()=>sum.IsActive)
.选择(c=>c.NumberOfWeeks).with别名(()=>sum.NumberOfWeeks))
.TransformUsing(Transformers.AliasToBean())
.跳过(开始)
.Take(15)
.Future();
经过进一步研究,这是一个有效的查询结果:
俱乐部俱乐部=空;
IEnumerable结果=
_querySession.QueryOver(()=>clubAlias)
.OrderBy(c=>c.IsActive).Desc
.OrderBy(c=>c.Name).Asc
.SelectList(list=>list
.Select(c=>c.Id).WithAlias(()=>sum.Id)
.Select(c=>c.Name).WithAlias(()=>sum.Name)
.Select(c=>c.IsActive).WithAlias(()=>sum.IsActive)
.使用别名(()=>sum.NumberOfWeeks)选择(c=>c.NumberOfWeeks)
.选择子查询
(
(的)查询
.Where(c=>c.cancelled==false)
.和(c=>c.Club.Id==clubAlias.Id)
.ToRowCountQuery()文件
).WithAlias(()=>sum.ActiveMembers))
.TransformUsing(Transformers.AliasToBean())
.跳过(开始)
.Take(15)
.Future();