親愛なるNHibernateの専門家へ
次のクエリでは、すべてのカテゴリが表示されます。
var result = Session.QueryOver(() => cat).List();
.. このクエリを実行すると、選択されたもの (category_x_product テーブル) が取得されます。
int productId = 11;
Category cat = null;
CategoryProduct cp = null;
var subQuery = QueryOver.Of(() => cp)
.Where(() => cp.ProductId == productId)
.Select(Projections.Distinct(Projections.Property(() => cp.CategoryId)));
result = Session.QueryOver(() => cat)
.WithSubquery
.WhereProperty(() => cat.Id).In(subQuery)
.List();
これら 2 つのクエリを組み合わせる任意の方法で、CategoryProduct クエリで実際に「選択」されたカテゴリを示すブール値を持つすべてのカテゴリを取得します。
たぶん、このようなエンティティにマップしますか?
CategorySelected
----------------
Category Category { get; set; }
bool IsSelected { get; set;
QueryOver を使用してこれに対する答えを見つけようとしましたが、成功しませんでした。これは、「多かれ少なかれ」単純なクエリでも可能ですか? どんな助けでも大歓迎です。ありがとう!
ミカル