NHibernate订购超过2个类的连接字段

时间:2010-02-15 12:18:01

标签: nhibernate fluent-nhibernate

我想询问您如何对具有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”。任何帮助,将不胜感激。非常感谢。

1 个答案:

答案 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"));