0

クラス ClassA をテーブル TableA にマップしています。次のSQLをNHibernate基準に変換するには?

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

更新 1: TableA は確かにビューです。2 つのテーブルの統計をマージするためのものです。Id は 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 に答える