NHibernate HQLはT-SQLのTOPキーワードに相当しますか?
また、クラスの最初の15を教えてくださいと言う非HQLの方法は何ですか?
NHibernate HQLはT-SQLのTOPキーワードに相当しますか?
また、クラスの最初の15を教えてくださいと言う非HQLの方法は何ですか?
実際、HQL では非常に簡単です。
var top15 = session.CreateQuery("from SomeEntity")
.SetFirstResult(0)
.SetMaxResults(15)
.List<SomeEntity>();
ただし、基準 API を使用してこれを行う方法がわかりません。
基準 API メソッド:
ICriteria criteria = DaoSession.CreateCriteria(typeof(T));
criteria.SetFirstResult(StartIndex);
criteria.SetMaxResults(MaximumObjects);
return criteria.List<T>();
完全を期すためQueryOver
に、NHibernate3.0で導入されたAPIを使用してこれを行う方法は次のとおりです。
var top15 = session.QueryOver<SomeEntity>().Take(15).List();
.Skip(someInt)
ページングなどの開始インデックスを定義する必要がある場合は、をスローします。
mookid8000 は虚偽の情報を提供しています。
HQL で SQL TOP N を設定する方法はありません :(
常にすべてのテーブルを .NET にダウンロードし、TOP を取得します。これは単純にばかげています。