クラス 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 ではなく、単なるフィールドです。あいまいで申し訳ありません。
クラス 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 ではなく、単なるフィールドです。あいまいで申し訳ありません。
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())