Nhibernate n根据bag的一个属性进行排序

Nhibernate n根据bag的一个属性进行排序,nhibernate,Nhibernate,在我的项目中,我使用NHibernate作为持久性框架,通过数据库,我有一个名为User的表和一个名为recipe的子表(所有表都正确地映射到一个单独的hbm.xml文件中)。 这是“用户”的xml: 收据对象有一个名为Amount的属性,我将使用该属性按记录订购。现在,我只能通过使用“用户”实体(电子邮件、电话)按记录订购。 如果我尝试使用链接实体的属性,我会出错。我怎么能引用它呢 这是我获取和订购记录的方法: public PagedList<User> GetAll(int

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


收据对象有一个名为Amount的属性,我将使用该属性按记录订购。现在,我只能通过使用“用户”实体(电子邮件、电话)按记录订购。 如果我尝试使用链接实体的属性,我会出错。我怎么能引用它呢

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

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);
        }
    }
publicpagedlistgetall(intpageindex、intpagesize、stringorderby、stringorderbyascordesc)
{
使用(ISession session=NHibernateHelper.OpenSession())
{
var users=session.CreateCriteria(typeof(User));
如果(!string.IsNullOrEmpty(orderBy))
users.AddOrder(orderByAscOrDesc.ToLower()=“asc”?Order.asc(orderBy):Order.Desc(orderBy));
返回users.PagedList(会话、页面索引、页面大小);
}
}

这是不可能的。您将需要在客户端执行此操作。 请参见此处的相关答案: