NHibernate から (NHibernate Criteria または LINQ を介して) 次の SQL を達成しようとしています。
SELECT MIN(ID)
FROM
(SELECT *
FROM PERSON
WHERE CITY = 'SYDNEY' and ROWNUM < 1000)
つまり、シドニー市に住んでいる最初の 1000 人の最も低い ID。
何か案は?乾杯。
NHibernate から (NHibernate Criteria または LINQ を介して) 次の SQL を達成しようとしています。
SELECT MIN(ID)
FROM
(SELECT *
FROM PERSON
WHERE CITY = 'SYDNEY' and ROWNUM < 1000)
つまり、シドニー市に住んでいる最初の 1000 人の最も低い ID。
何か案は?乾杯。
これは、Criteria API を使用した同様のクエリです。
session.CreateCriteria<Person>()
.SetProjection(Projections.Min("ID"))
.Add(Subqueries.PropertyIn("ID",
DetachedCriteria.For<Person>()
.Add(Restrictions.Eq("CITY", "SYDNEY"))
.SetProjection(Projections.Property("Id"))
.SetMaxResults(1000)))
.List();
結果の SQL クエリは ROWNUM の代わりに TOP() を使用しますが、それでうまくいくと思います。