はのは、私が弁別(階層ごとのテーブル)でマッピングされた以下の構造を、持っていると言う派生されませんこれについてLinqをNHibernateに使用する:NHibernateはLINQのクエリは、オブジェクト
私は結果を得られません。生成されたクエリを見ているときに私が見に期待:
where type in (1, 2)
をしかし、その代わりに、私はこれを得た:
where type='animal'
動物が抽象的であるとさえ弁別を持っていないので、生成されたクエリは無意味です。
少し深く掘り下げて、クエリが内部的にHQLのWHERE x.class=animal
に似たものに変換されていることがわかりました。これはLinqのNHibernateのバグですか?それとも期待される行動ですか?
もし私が 'session.Query .ToList()'を実行すると、予想されるクエリ 'type in(1,2)'が返されます。私があなたの答えで質問をすると、私はそれも動作すると思います。問題は '.Where(x => x.EntityはAnimalです)'のみです。 (x => a.Id).Contains(x.Entity.Id))の代わりに、単純な 'where type in(1,2)の代わりに) 'id(select id from ...)'の中で複雑なサブクエリを取得します。 –
AlexDev