Я пытаюсь воспроизвести этот SQL-запрос в NH:
select vehicle.Id, price.Price
from vhc.Vehicle vehicle
left outer join vhc.VehiclePrice price on vehicle.Id = price.VehicleId
and price.VehiclePriceTypeId = 1
where price.Id is null or price.VehiclePriceTypeId = 1
order by price.Price
Важной частью является второй критерий соединения. Я хочу видеть все Транспортные средства, независимо от того, есть ли у них цена, но если у них есть какие-либо цены, я хочу выбрать цену типа 1. Удаление этого второго критерия соединения означает, что оно исключает все транспортные средства, которые имеют цены только типов 2 , 3 и т. Д. Это не нормально.
Подходы, которые я пробовал:
Добавление глобального фильтра для объекта VehiclePrice для фильтрации только в
VehiclePriceType = 1, но он помещает его в место, а не в соединение, поэтому
не повезло.
Добавление подзапроса для цен с типом 1, но, опять же, он применяет его в месте, а не в соединении.
Другие типы соединения - полное, правильное ... здесь, кажется, нет смысла.
Это обычная проблема, но пока не нашли решения. Есть мысли?