0

我将 ClassA 类映射到表 TableA。如何将下一个 sql 转换为 NHibernate 标准?

  SELECT DISTINCT t.Id, (Select COUNT(*) FROM TableA WHERE [Id] = t.Id)
  FROM TableA AS t

更新 1: TableA 确实是一个视图。它用于合并来自两个表的统计信息。ID 不是身份,只是字段,如有歧义,请见谅。

4

1 回答 1

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())
于 2013-01-21T13:23:10.103 回答