由行李

时间:2016-08-09 12:17:26

标签: nhibernate

在我的项目中,我使用NHibernate作为持久性框架,并且通过数据库,我有一个名为User的表和一个名为recipe的子项(所有这些都在一个单独的hbm.xml文件中正确映射)。 这是" User":

的xml
    <?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>

Receipt对象有一个名为Amount的属性,我将使用该属性按记录顺序。就像现在一样,我只能通过使用&#34; User&#34;来记录。实体(es:电子邮件,电话)。 如果我尝试使用链接实体的属性,我得到一个错误。我怎么能参考呢?

这是我获取和订购记录的方法:

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);
        }
    }

1 个答案:

答案 0 :(得分:2)

这是不可能的。你需要做客户端。 请参阅相关答案: NHibernate: how to sort a collection by a property of a referenced entity