NHibernate在条件中有许多带有OrderBy override选项

NHibernate在条件中有许多带有OrderBy override选项,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,因此,当调用WR上的SetFetchMode时,映射的OrderBy部分将取代代码中指定的AddOrder sql代码的示例 HasMany(x => x.WR) .Table("WR") .KeyColumn("StudentId") .LazyLoad() .AsSet() .Inverse()

因此,当调用WR上的SetFetchMode时,映射的OrderBy部分将取代代码中指定的AddOrder

sql代码的示例

HasMany(x => x.WR)
                .Table("WR")
                .KeyColumn("StudentId")
                .LazyLoad()
                .AsSet()
                .Inverse()
                .Cascade.None()
                .OrderBy("CreatedDate desc")
                .BatchSize(10);

如何覆盖定义的映射并确保从OrderBy中删除WR CreatedDate并从条件中删除?

查看生成的sql。可能顺序包含在查询的某个地方(即子查询中),对结果集没有任何影响。取决于MakeCriteriaForFindAllStudents()如何构建ICriteria。

看起来这是NHibernate中的已知错误,下面是链接


查看sql gen帮助了我。
HasMany(x => x.WR)
                .Table("WR")
                .KeyColumn("StudentId")
                .LazyLoad()
                .AsSet()
                .Inverse()
                .Cascade.None()
                .OrderBy("CreatedDate desc")
                .BatchSize(10);
ORDER BY wr6_.CreatedDate desc, this_.LNametxt asc, this_.FNameTxt asc;