2011-07-31 21 views
0

我的理解是,映射集合的名單,並給予一列索引,然後當:NHibernate的有序列表Collection不是由它的順序取出

  1. NHibernate的維持,而集合改變給定列序號位置
  2. 當收集加載其項目根據保持順序列

加載不幸的是,我的經驗表明,只有(1)工作。 這裏是映射:

  HasMany(x => x.Attachments) 
      .AsList(index => index.Column("OrderInProduct")) 
      .Cascade.AllDeleteOrphan() // Handle cascade upserts 
      ; 

是我(2)錯誤的期待?我的映射是否錯誤?

+0

誰能幫助嗎?仍然在尋找你的答案...... – Elad

回答

1

您可以添加排序依據:

HasMany(x => x.Attachments) 
      .AsList(index => index.Column("OrderInProduct")) 
      .OrderBy(o => o.Column("OrderInProduct")) 
      .Cascade.AllDeleteOrphan() // Handle cascade upserts 
      ; 
+1

上面的代碼不能編譯,我得到:「不能將lambda表達式轉換爲類型'string',因爲它不是委託類型」。我試過OrderBy(「OrderInProduct」),但它不影響任何東西(我認爲「OrderBy」是一袋) – Elad

相關問題