Frage

Wie würden Sie die folgenden Kriterien Abfrage in HQL auszudrücken?

var idArray = new int[] { 1, 2, 3, 4, 5 };

Session.CreateCriteria(typeof(Foo))
    .Add(Expression.In("Id", idArray)
    .List<Foo>();

Ich bin mir bewusst, dass es ein „in“ Schlüsselwort in HQL, aber wie ich es verstehe, dass Schlüsselwort ist für die Verwendung mit Subqueries nicht so etwas wie“... wo Id in (1, 2, 3, 4, 5)“oder dergleichen. Ist dies nicht der Fall ist, werde ich gerne Korrekturen übernehmen.

Danke / Erik

War es hilfreich?

Lösung

Versuchen Sie folgendes:

var idArray = new int[] { 1, 2, 3, 4, 5 };
var foos = Session
    .CreateQuery("from Foo f where f.Id in (:ids)")
    .SetParameterList("ids", idArray)
    .List<Foo>();

Andere Tipps

Das funktioniert auch

ICriteria sc = session.CreateCriteria(typeof(Foo));
sc.Add(Restrictions.In("id",new[] { 1, 2 }));
siteList = sc.List();
session.Close();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top