2010-02-15 43 views
1

我想問一下如何對具有2個基本上由2個實體連接的屬性的對象進行排序。NHibernate訂購一個類的超過2個連接字段

可以說「ClassA」有一個名爲ClassB和ClassC的屬性,它們本身也是類。 ClassB具有名爲Name的屬性,ClassC也具有名爲Name的屬性。現在,由於ClassB和ClassC都是ClassA的屬性,因此如何使用ClassB和ClassC的Name屬性來排列ClassA的列表。下面是示例NHibernate的標準代碼,在C#:

ICriteria criteria = m_Session.CreateCriteria<ClassA>() 
    .AddOrder(Order.Asc("ClassB.Name")) 
    .AddOrder(Order.Asc("ClassC.Name")); 

但上面的代碼拋出一個錯誤,指出 「無法解析屬性:ClassA的:的ClassB.Name」。任何幫助,將不勝感激。非常感謝。

回答

4

您需要別名2個關聯(ClassB & ClassB),以便您可以按順序排列。

ICriteria criteria = m_Session.CreateCriteria<ClassA>() 
    .CreateAlias("ClassB", "b") 
    .CreateAlias("ClassC", "c") 
    .AddOrder(Order.Asc("b.Name")) 
    .AddOrder(Order.Asc("c.Name")); 
+0

正是答案!萬分感謝! – jerbersoft