2009-05-31 60 views
2

如果我有一個集合映射在流利NHibernate,我想申請一個訂單,該集合我該怎麼做?流利Nhibernate訂購,在集合

如:

HasMany(x => x.PastDates) 
      .AsBag().Cascade 
      .SaveUpdate() 
      .KeyColumnNames.Add("EventId") 
      .Where(e => e.DateFrom < DateTime.Now.Date) 
      .Inverse(); 

我要找的order-by屬性的HBM文件的等價物。

感謝

回答

5

看來,「訂單通過」屬性不是FluentNHibernate的API中。我沒有看到issue,所以這可能是一個有意識的遺漏。您應該可以使用SetAttribute添加它,但this user無法使其正常工作。

HasMany(x => x.PastDates) 
     .AsBag().Cascade 
     .SaveUpdate() 
     .KeyColumnNames.Add("EventId") 
     .Where(e => e.DateFrom < DateTime.Now.Date) 
     .Inverse() 
     .SetAttribute("order-by", "column_name"); 

請注意,NHibernate使用的設置順序爲may change the collection type;但是這不適用於行李。

+0

感謝您的幫助。我試試看。通過發佈,我發現了一個明顯的錯誤,「 madcapnmckay 2009-05-31 15:10:14

+0

這不是故意的遺漏,FYI :) – 2009-06-04 11:19:50

+0

有沒有什麼辦法按降序排序? – 2010-01-24 02:07:50

22

功能NHibernate現在有了可以使用的排序依據的方法:

HasMany(x => x.PastDates) 
     .AsBag().Cascade 
     .SaveUpdate() 
     .KeyColumnNames.Add("EventId") 
     .Where(e => e.DateFrom < DateTime.Now.Date) 
     .Inverse() 
     .OrderBy("ColumnName DESC"); 
+0

我認爲這實際上是映射屬性的名稱而不是底層的列嗎?無論如何這是一種遺憾,它與Criterion.Order不一致 – Andy 2012-09-10 07:03:14