我有一個一對多的關係的兩個表:濾波器子查詢NHibernate的查詢
product -> orders
在Products
表(母公司)我的產品,我可以賣的最大數量,並在子表(訂單)我有每行銷售的產品數量。 我需要做的,我有庫存可用產品的列表,以
orders.count() <= product.NumberOfProductsInStock
過濾我怎樣才能做到這一點,在NHibernate的查詢?
我有一個一對多的關係的兩個表:濾波器子查詢NHibernate的查詢
product -> orders
在Products
表(母公司)我的產品,我可以賣的最大數量,並在子表(訂單)我有每行銷售的產品數量。 我需要做的,我有庫存可用產品的列表,以
orders.count() <= product.NumberOfProductsInStock
過濾我怎樣才能做到這一點,在NHibernate的查詢?
你可以這樣做:
CurrentSession.Linq<Product>()
.Where(p => p.NumberOfProductsInStock > 0 && (p.Orders.Count() == 0 || p.Orders.Count() <= p.NumberOfProductsInStock))
.ToList();
只是爲了澄清,你是什麼意思 「* *通過過濾」 是什麼意思?我的答案可能是錯誤的,具體取決於你的意思...... – James
你在NHibernate,HQL,Criteria,Linq中使用了哪些查詢實現? –
實際上我使用linq,但我看到DefaultIfEmpty運算符目前不受支持。 –