2012-12-17 3 views
0

У меня есть две таблицы в один-ко-многим:фильтр подзапроса в NHibernate запроса

product -> orders 

В Products таблице (родителю) У меня есть максимальное количество продуктов, которые я могу продать, и в child table (orders) У меня есть количество продуктов, проданных для каждой строки. Мне нужно составить список продуктов, которые у меня есть в наличии на складе, фильтруется

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

последнее, что я предполагаю .. –

Смежные вопросы