我在让 Nhibernate 3.3.2.4000 生成 orderby 子句中使用的正确子查询时遇到问题,如下所示:
select *
from dbo.Person p inner join dbo.Task t on p.Task_FK = p.TaskId
order by (select p.CustomerNumber where p.IsMain=1) desc
我们有两个实体:Task
和Person
一项任务可以有 N 个人与之相关。即 Task 有一个 IList 属性。
如何让 Nhibernate 生成正确的子查询?我已经用查询 API 做到了这样的事情:
query = query.OrderBy(x => x.Persons.Single(t => t.CustomerNumber));
但我不确定如何正确生成原始 sql 查询中显示的 where 子句。以某种方式使用queryover api可能更容易完成吗?
非常欢迎任何建议或指导。