2012-12-17 86 views
0

我有一個一對多的關係的兩個表:濾波器子查詢NHibernate的查詢

product -> orders 

Products表(母公司)我的產品,我可以賣的最大數量,並在子表(訂單)我有每行銷售的產品數量。 我需要做的,我有庫存可用產品的列表,以

orders.count() <= product.NumberOfProductsInStock 

過濾我怎樣才能做到這一點,在NHibernate的查詢?

+0

只是爲了澄清,你是什麼意思 「* *通過過濾」 是什麼意思?我的答案可能是錯誤的,具體取決於你的意思...... – James

+0

你在NHibernate,HQL,Criteria,Linq中使用了哪些查詢實現? –

+0

實際上我使用linq,但我看到DefaultIfEmpty運算符目前不受支持。 –

回答

0

你可以這樣做:

CurrentSession.Linq<Product>() 
    .Where(p => p.NumberOfProductsInStock > 0 && (p.Orders.Count() == 0 || p.Orders.Count() <= p.NumberOfProductsInStock)) 
    .ToList(); 
+0

它是nhibernate查詢嗎? –

+0

這是一個NHibernate查詢。你使用的是什麼版本的NHibernate? – James

+0

最新我想.. –