流利的Nhibernate订单收集

时间:2009-05-31 11:30:25

标签: fluent-nhibernate

如果我在Fluent NHibernate中映射了一个集合,并且我想对该集合应用一个订单,我该怎么做?

例如:

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

我正在寻找HBM文件中等价的order-by属性。

由于

2 个答案:

答案 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}}顺序;但这并不适用于行李。