我有一个对象模型,其中一个Order
包含许多LineItems
,每个LineItem
都有一个关联的Product
. 在对象模型中,这些是单向关联LineItem
——a 不知道任何关于它的Order
.
我想查询包含产品名称与字符串匹配的订单项的订单,为每个订单返回一行(以便可以执行分页)。
SELECT * FROM Orders
WHERE OrderID IN (
SELECT DISTINCT OrderID
FROM LineItems
INNER JOIN Products on LineItems.ProductID = Products.ProductID
WHERE Products.Name = 'foo'
)
鉴于我有一个ICriteria
或一个IQueryOver
代表子查询,我如何将它实际应用到我的根订单查询?
var subquery = QueryOver.Of<LineItem>
.Where(l => l.Product.Name == "foo")
.TransformUsing(Transformers.DistinctRootEntity);
我找到了很多假设查询中的根对象位于一对多关系的“多”端的示例,但我不知道如何对根对象的某些内容添加限制许多.