NHibernate Criteria - Filtern nach Eigenschaftskombinationen

Ich musste eine Ergebnisliste mithilfe der Kombination von zwei Eigenschaften filtern. Eine einfache SQL-Anweisung würde folgendermaßen aussehen:

SELECT TOP 10 *
FROM Person
WHERE FirstName + ' ' + LastName LIKE '%' + @Term + '%'

Die ICriteria in NHibernate, die ich letztendlich verwendete, waren:

ICriteria criteria = Session.CreateCriteria(typeof(Person));
criteria.Add(Expression.Sql(
    "FirstName + ' ' + LastName LIKE ?",
    "%" + term + "%",
    NHibernateUtil.String));
criteria.SetMaxResults(10);

Es funktioniert perfekt, aber ich bin mir nicht sicher, ob es die ideale Lösung ist, da ich immer noch etwas über die Kriterien-API von NHibernate lerne. Was sind die empfohlenen Alternativen?

Ist da noch etwas anderes alsExpression.Sql das würde den gleichen Vorgang ausführen? Ich habe es versuchtExpression.Like, konnte aber nicht herausfinden, wie Vor- und Nachnamen kombiniert werden sollen. Soll ich der Formel "Vorname + '' + Nachname" in der Zuordnungsklasse eine FullName-Eigenschaft zuordnen? Soll ich eine schreibgeschützte FullName-Eigenschaft für das Domänenobjekt erstellen und es dann einer Spalte zuordnen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage