我想询问您如何对具有2个属性的对象进行排序,这些属性基本上是从2个实体连接的。
让我们说“ClassA”有一个名为ClassB和ClassC的属性,它们本身也是类。 ClassB有一个名为Name的属性,ClassC也有一个名为Name的属性。现在,由于ClassB和ClassC都是ClassA的属性,我如何使用ClassB和ClassC的Name属性来订购ClassAs列表。下面是C#中的NHibernate标准代码示例:
ICriteria criteria = m_Session.CreateCriteria<ClassA>()
.AddOrder(Order.Asc("ClassB.Name"))
.AddOrder(Order.Asc("ClassC.Name"));
但是上面的代码会抛出一个错误 “无法解析属性:ClassB.Name of:ClassA”。任何帮助,将不胜感激。非常感谢。
答案 0 :(得分:4)
您需要为2个关联(ClassB&amp; ClassB)添加别名,以便您可以按他们订购。
ICriteria criteria = m_Session.CreateCriteria<ClassA>()
.CreateAlias("ClassB", "b")
.CreateAlias("ClassC", "c")
.AddOrder(Order.Asc("b.Name"))
.AddOrder(Order.Asc("c.Name"));