背景:私が一致するレコードの数に対してNHibernateは基準を含めることができますどのように
- 私はマスターとディテールテーブル、MおよびDを持っています。
- Mには注文が含まれ、Dにはさまざまなサイズの部品(S、M、L、XL)の注文詳細が含まれます。
- 注文にはいくつでも部品が含まれる場合があります。すべての注文の
- 95%がサイズSの少なくとも一つの項目が含まれている
- 新しい要件は、サイズがSMLXLは、もはや私が探しています
を働くために一生懸命リストをコーディングしない、将来的に追加することができるということです特定のサイズのパーツだけを含むすべての注文Mのリストを返すnHibernateクエリです。
つまり、サイズSの部分のみを含むすべての注文を返し、サイズの混合物を含むすべての注文を除外します。
私が使っていた:
matching_orders.Add(
Expression.Conjunction()
.Add(Subqueries.WhereProperty<Orders>(o => o.OrderId).In(DetailQueryOver(S)))
.Add(Subqueries.WhereProperty<Orders>(o => o.OrderId).NotIn(DetailQueryOver(M)))
.Add(Subqueries.WhereProperty<Orders>(o => o.OrderId).NotIn(DetailQueryOver(L)))
.Add(Subqueries.WhereProperty<Orders>(o => o.OrderId).NotIn(DetailQueryOver(XL)))
をより良い方法があるに違いありません。 "count(DISTINCT SIZES)= 1"のようなもの
しかし、これをnHibernateでどのように実装するかはわかりません。
提案?
NHは 'having'節をまだサポートしていますか?次のような場所でサブクエリを使うことができます。 '1 =(select count(distinct sizes)from ...)' – dotjoe