2

NHibernate を使用して、以下に相当するものを作成しようとしています。私は流暢を使用してすべてのマッピングを行いました。基本的なクエリは問題なく実行できますが、これを行う方法がわかりません。

-**Product Table**
Reference
Title
Subjects (Many to Many relationship)
Price

-**Subject table**
SubjectID
Name

-**SubjectToProductMapping Table**
Reference
SubjectID

今、私はこれを行う必要があります:

SELECT * 
FROM Product
WHERE Reference IN 
    (Select Reference FROM SubjectToProductMapping WHERE SubjectID = @SubjectID)

Product テーブルは投稿のために大幅に簡略化されていることを念頭に置いてください。IN ステートメントを使用して、クエリの残りの部分を簡略化することをお勧めします。Criteria を使用して結果をページングするため、理想的には Criteria を使用してクエリを作成したいと思います。

前もって感謝します

4

1 に答える 1

0

結合で十分なのに、なぜ in を使用するのでしょうか? Products クラスにサブジェクトのマップされたコレクションがある場合、この Criteria を使用できます

IList<Product> results = session.CreateCriteria(typeof(Product))
                                .CreateCriteria("Subjects", JoinType.Join)
                                .Add(Resitctions.Eq(Projections.ID, subjectID))
                                .List<Product>();
于 2009-01-02T21:46:28.200 に答える