我将类ClassA映射到表TableA。如何将下一个sql转换为NHibernate标准?
SELECT DISTINCT t.Id, (Select COUNT(*) FROM TableA WHERE [Id] = t.Id)
FROM TableA AS t
更新1: TableA确实是一个视图。它用于合并来自两个表的统计数据。我不是身份,只是字段,抱歉模棱两可。
答案 0 :(得分:1)
来自http://nhibernate.info/doc/nh/en/index.html#querycriteria-projection:
List results = session.CreateCriteria(typeof(ClassA))
.SetProjection( Projections.ProjectionList()
.Add( Projections.RowCount() )
.Add( Projections.GroupProperty("Id") ) )
.List();
或者与Linq:
from a in session.Query<ClassA>
group a by a.Id into g
select new { g.Key, g.Count())