Was ist NHibernate HQL Äquivalent zu TOP-Schlüsselwort von T-SQL?NHibernate HQL entspricht TOP von T-SQL Schlüsselwort
Auch was ist die Nicht-HQL-Art zu sagen, gib mir die ersten 15 einer Klasse?
Was ist NHibernate HQL Äquivalent zu TOP-Schlüsselwort von T-SQL?NHibernate HQL entspricht TOP von T-SQL Schlüsselwort
Auch was ist die Nicht-HQL-Art zu sagen, gib mir die ersten 15 einer Klasse?
Es ist eigentlich ziemlich einfach in HQL:
var top15 = session.CreateQuery("from SomeEntity")
.SetFirstResult(0)
.SetMaxResults(15)
.List<SomeEntity>();
Sie wissen nicht, wie Sie dies tun, obwohl die Kriterien API.
Criteria API Methode:
ICriteria criteria = DaoSession.CreateCriteria(typeof(T));
criteria.SetFirstResult(StartIndex);
criteria.SetMaxResults(MaximumObjects);
return criteria.List<T>();
+1. Ich muss in dieses MaximumObjects schauen. Ziemlich cool. – BuddyJoe
MaximumObjects ist nur eine Ganzzahlvariable, um SetMaxResults mitzuteilen, wie viele Objekte zurückgegeben werden sollen. In Ihrem Fall könnten Sie stattdessen 15 fest codieren, d. H. Criteria.SetMaxResults (15); –
Haha ... also mit anderen Worten ist es identisch mit CreateQuery() nachdem die Instanz erstellt wurde. –
Der Vollständigkeit halber ist hier, wie es mit den in NHibernate 3.0 eingeführt QueryOver
API tun:
var top15 = session.QueryOver<SomeEntity>().Take(15).List();
Wurf in einem .Skip(someInt)
, wenn Sie ein definieren müssen Startindex, z zum Paging.
mookid8000 gibt falsche Informationen.
gibt es keine Möglichkeit SQL TOP N mit HQL der Einstellung :(
lädt es immer alle den Tisch zu .NET und das ist der TOP, ist wich einfach nur dumm!
Von NHibernate 3.2 Sie SKIP n/TAKE n
in hql am Ende der Abfrage verwenden, könnten es in Unterabfragen sehr hilfreich sein könnte, wo man nicht SetMaxResults
Zum Beispiel verwenden kann:..
select l, (select u from User u where u.Location = l order by u.Date asc take 1)
from Location l
+1. Huh, das ist ziemlich komisch. Ich dachte, die Antwort wäre Teil der HQL "getunnelten" Zeichenfolge. Interessant. – BuddyJoe
Diese Antwort ist eigentlich ein Hybrid von HQL und die Kriterien API –
yea.it ist im Wesentlichen das gleiche wie Kriterien ... einfach ersetzen mit CreateCriteria () ' – dotjoe