以下に示すように、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
次の 2 つのエンティティがTask
あります。Person
1 つのタスクには N 人の関係者を含めることができます。つまり、Task には IList プロパティがあります。
Nhibernate に正しいサブクエリを生成させるにはどうすればよいですか? クエリ API を使用して、次のようなことを実現しました。
query = query.OrderBy(x => x.Persons.Single(t => t.CustomerNumber));
しかし、元のSQLクエリに表示されているようにwhere句を正しく生成する方法がわかりません。これはおそらく、queryover api を使用して簡単に実行できますか?
アドバイスやガイダンスは大歓迎です。