流利的Nhibernate订单收集

mad*_*kay 2 fluent-nhibernate

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

例如:

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

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

谢谢

Kev*_*dge 24

流畅的NHibernate现在有一个OrderBy方法,你可以使用:

HasMany(x => x.PastDates)
        .AsBag().Cascade
        .SaveUpdate()
        .KeyColumnNames.Add("EventId")
        .Where(e => e.DateFrom < DateTime.Now.Date)
        .Inverse()
        .OrderBy("ColumnName DESC");
Run Code Online (Sandbox Code Playgroud)


Jam*_*Ide 5

似乎"order-by"属性不在FluentNHibernate API中.我没有看到它的问题所以这可能是一个有意识的遗漏.您应该能够使用SetAttribute添加它,但此用户无法使其工作.

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

请注意,设置order-by 可能会更改 NHibernate使用的集合类型 ; 但这并不适用于行李.