SQL到Nhibernate标准

时间:2013-01-21 11:09:51

标签: sql nhibernate fluent-nhibernate

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

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

更新1: TableA确实是一个视图。它用于合并来自两个表的统计数据。我不是身份,只是字段,抱歉模棱两可。

1 个答案:

答案 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())