Я пытаюсь изучить NHibernate, и у меня возникают трудности с переводом SQL-запроса в один с использованием API критериев.
Модель данных имеет таблицы: Часть (Id, Имя, ...), Заказ (Id, PartId, Qty), Отгрузка (Id, PartId, Qty)
Для всех деталей я хочу найти общее количество заказанного и общее количество отгруженного. В SQL у меня есть:
select shipment.part_id, sum(shipment.quantity), sum(order.quantity)
from shipment cross join order
on order.part_id = shipment.part_id
group by shipment.part_id
В качестве альтернативы:
select id,
(select sum(quantity) from shipment where part_id = part.id),
(select sum(quantity) from order where part_id = part.id)
from part
Но последний запрос выполняется вдвое дольше.
Любые предложения о том, как создавать эти запросы в (свободно) NHibernate? У меня есть все таблицы сопоставлены и загрузки / сохранения / и т. Д. Объекты отлично работает.