In meinem Projekt verwende ich NHibernate als Persistenz-Framework und nach Datenbank habe ich eine Tabelle namens Benutzer und ein Kind namens Rezept (alle sind korrekt in einer separaten hbm.xml-Datei zugeordnet) . Dies ist die xml von „User“:NHibernate Auftrag durch eine Eigenschaft der Tasche
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="MyProject.Engine.Domain.User,MyProject.Engine" table="Users" lazy="true">
<id name="UserID" column="UserID">
<generator class="native" />
</id>
<property name="Firstname" column="Firstname" type="string" not-null="true" length="255" />
<property name="Lastname" column="Lastname" type="string" not-null="true" length="255" />
<property name="Email" column="Email" type="string" not-null="true" length="255" />
<property name="Phone" column="Phone" type="string" not-null="true" length="30" />
<property name="Birthday" column="Birthday" type="date" not-null="true"/>
<property name="Address" column="Address" type="string" not-null="true" length="255" />
<property name="City" column="City" type="string" not-null="true" length="50" />
<property name="Zipcode" column="Zipcode" type="int" not-null="true" length="32" />
<property name="Province" column="Province" type="string" not-null="true" length="30" />
<one-to-one name="Receipt" cascade="all" property-ref="UserID" class="MyProject.Engine.Domain.Receipt,MyProject.Engine" />
</class>
</hibernate-mapping>
Die Quittung Objekt hat eine Eigenschaft namens Betrag und ich würde durch Aufzeichnung unter Verwendung dieser Eigenschaft bestellen. Wie jetzt, ich bin nur in der Lage, nach Datensatz zu sortieren, indem ich die Entität "Benutzer" verwende (es: E-Mail, Telefon). Wenn ich versuche, eine Eigenschaft der verknüpften Entität zu verwenden, habe ich einen Fehler erhalten. Wie könnte ich darauf verweisen?
Dies ist meine Methode, meinen Rekord zu bekommen und bestellen:
public PagedList<User> GetAll(int pageIndex, int pageSize, string orderBy, string orderByAscOrDesc)
{
using (ISession session = NHibernateHelper.OpenSession())
{
var users = session.CreateCriteria(typeof (User));
if (!string.IsNullOrEmpty(orderBy))
users.AddOrder(orderByAscOrDesc.ToLower() == "asc" ? Order.Asc(orderBy) : Order.Desc(orderBy));
return users.PagedList<User>(session, pageIndex, pageSize);
}
}