我正在尝试通过它的孩子的总和来订购一个 Linq to NHibernate 查询。
session.Linq<Parent>().OrderBy( p => p.Children.Sum( c => c.SomeNumber ) ).ToList()
这似乎不起作用。查看 NHProf 时,我可以看到它是按 Parent.Id 排序的。我想也许它正在返回结果并在 SQL 之外对它们进行排序,但是如果我在 Linq 查询中添加一个 .Skip ( 1 ).Take( 1 ),它仍然按 Parent.Id 排序。
我尝试使用内存列表执行此操作,并且效果很好。
我做错了什么,或者这是 Linq to NHibernate 的问题吗?
我确信我总是可以返回列表,然后对它们进行操作,但这不是一个理想的解决方法,因为我不想返回所有记录。