23

NHibernate HQLはT-SQLのTOPキーワードに相当しますか?

また、クラスの最初の15を教えてくださいと言う非HQLの方法は何ですか?

4

5 に答える 5

33

実際、HQL では非常に簡単です。

var top15 = session.CreateQuery("from SomeEntity")
                .SetFirstResult(0)
                .SetMaxResults(15)
                .List<SomeEntity>();

ただし、基準 API を使用してこれを行う方法がわかりません。

于 2009-02-16T23:45:28.727 に答える
10

基準 API メソッド:

ICriteria criteria = DaoSession.CreateCriteria(typeof(T));
criteria.SetFirstResult(StartIndex);
criteria.SetMaxResults(MaximumObjects);
return criteria.List<T>();
于 2009-02-16T23:48:43.430 に答える
0

完全を期すためQueryOverに、NHibernate3.0で導入されたAPIを使用してこれを行う方法は次のとおりです。

var top15 = session.QueryOver<SomeEntity>().Take(15).List();

.Skip(someInt)ページングなどの開始インデックスを定義する必要がある場合は、をスローします。

于 2012-12-05T20:53:09.513 に答える
-2

mookid8000 は虚偽の情報を提供しています。

HQL で SQL TOP N を設定する方法はありません :(

常にすべてのテーブルを .NET にダウンロードし、TOP を取得します。これは単純にばかげています。

于 2013-06-14T15:17:28.563 に答える