簡體   English   中英

NHibernate中的IN()語句如何工作? (使用條件)

[英]How do IN () statements work in NHibernate? (Using Criteria)

我正在嘗試使用NHibernate創建以下內容。 我已經使用fluent完成了所有映射,我可以很好地進行基本查詢,但是我不知道該怎么做。

-**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來分頁結果。

提前致謝

當聯接足夠時,為什么要使用in呢? 如果您的Products類具有映射的主題集合,那么您可以使用此條件

IList<Product> results = session.CreateCriteria(typeof(Product))
                                .CreateCriteria("Subjects", JoinType.Join)
                                .Add(Resitctions.Eq(Projections.ID, subjectID))
                                .List<Product>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM