如果我在Fluent NHibernate中映射了一个集合,并且我想对该集合应用一个订单,我该怎么做?
例如:
HasMany(x => x.PastDates)
.AsBag().Cascade
.SaveUpdate()
.KeyColumnNames.Add("EventId")
.Where(e => e.DateFrom < DateTime.Now.Date)
.Inverse();
我正在寻找HBM文件中等价的order-by属性。
由于
答案 0 :(得分:23)
Fluent NHibernate现在有一个OrderBy方法,你可以使用它:
HasMany(x => x.PastDates)
.AsBag().Cascade
.SaveUpdate()
.KeyColumnNames.Add("EventId")
.Where(e => e.DateFrom < DateTime.Now.Date)
.Inverse()
.OrderBy("ColumnName DESC");
答案 1 :(得分:5)
似乎“order-by”属性不在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使用的{ - 3}}顺序;但这并不适用于行李。