NHibernate对一个类的2个以上的联接字段进行排序

NHibernate对一个类的2个以上的联接字段进行排序,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我想问一下,对于一个具有两个基本上由两个实体连接而成的属性的对象,如何进行排序 假设“ClassA”有一个名为ClassB和ClassC的属性,它们本身也是类。ClassB有一个名为Name的属性,ClassC也有一个名为Name的属性。现在,由于ClassB和ClassC都是ClassA的属性,我如何使用ClassB和ClassC的名称属性对ClassA列表进行排序。下面是C#中的NHibernate标准代码示例: ICriteria criteria=m_Session.CreateCrit

我想问一下,对于一个具有两个基本上由两个实体连接而成的属性的对象,如何进行排序

假设“ClassA”有一个名为ClassB和ClassC的属性,它们本身也是类。ClassB有一个名为Name的属性,ClassC也有一个名为Name的属性。现在,由于ClassB和ClassC都是ClassA的属性,我如何使用ClassB和ClassC的名称属性对ClassA列表进行排序。下面是C#中的NHibernate标准代码示例:

ICriteria criteria=m_Session.CreateCriteria()
.AddOrder(Order.Asc(“ClassB.Name”))
.AddOrder(Order.Asc(“ClassC.Name”);
但是上面的代码抛出了一个错误
“无法解析属性:ClassB。名称:ClassA”。任何帮助都将不胜感激。非常感谢。

您需要为这两个关联(ClassB和ClassB)添加别名,以便您可以按它们进行订购

ICriteria criteria = m_Session.CreateCriteria<ClassA>()
    .CreateAlias("ClassB", "b")
    .CreateAlias("ClassC", "c")
    .AddOrder(Order.Asc("b.Name"))
    .AddOrder(Order.Asc("c.Name"));
ICriteria criteria=m_Session.CreateCriteria()
.CreateAlias(“b类”、“b类”)
.CreateAlias(“c类”、“c类”)
.AddOrder(Order.Asc(“b.Name”))
.AddOrder(Order.Asc(“c.Name”);

您需要为这两个关联(ClassB和ClassB)添加别名,以便您可以根据它们进行订购

ICriteria criteria = m_Session.CreateCriteria<ClassA>()
    .CreateAlias("ClassB", "b")
    .CreateAlias("ClassC", "c")
    .AddOrder(Order.Asc("b.Name"))
    .AddOrder(Order.Asc("c.Name"));
ICriteria criteria=m_Session.CreateCriteria()
.CreateAlias(“b类”、“b类”)
.CreateAlias(“c类”、“c类”)
.AddOrder(Order.Asc(“b.Name”))
.AddOrder(Order.Asc(“c.Name”);