我将 ClassA 类映射到表 TableA。如何将下一个 sql 转换为 NHibernate 标准?
SELECT DISTINCT t.Id, (Select COUNT(*) FROM TableA WHERE [Id] = t.Id)
FROM TableA AS t
更新 1: TableA 确实是一个视图。它用于合并来自两个表的统计信息。ID 不是身份,只是字段,如有歧义,请见谅。
我将 ClassA 类映射到表 TableA。如何将下一个 sql 转换为 NHibernate 标准?
SELECT DISTINCT t.Id, (Select COUNT(*) FROM TableA WHERE [Id] = t.Id)
FROM TableA AS t
更新 1: TableA 确实是一个视图。它用于合并来自两个表的统计信息。ID 不是身份,只是字段,如有歧义,请见谅。
来自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())