Как выбрать не отображенное поле в NHibernate?

#c# #tsql #nhibernate

#c# #tsql #nhibernate

Вопрос:

У меня есть именованный запрос, который извлекает список объектов класса «Expediente». Мне нужно добавить вычисляемое поле (confirmado) к этим объектам, но я не могу понять, как сопоставить это поле для этого конкретного запроса. Я пробовал в файле сопоставления использовать insert=»false» update=»false», но тогда для каждого отдельного запроса требуется поле. Вы можете мне помочь?

 <sql-query name="BuscarExpedientes">
<return alias="e" class="GestionDPV.Core.Expediente, GestionDPV.Core"/>
<return-join alias="cab" property="e.Agregados"/>
<![CDATA[
  SELECT e.*,
  CASE
    WHEN p.id IS NULL THEN p.confirmado
    ELSE 1
  END AS confirmado
  FROM Expedientes e
  LEFT JOIN Expedientes cab ON cab.id = e.idCabecera
  LEFT JOIN Pases p ON p.idExpediente = e.id AND p.fechaGeneracion = (SELECT MAX(fechaGeneracion) FROM Pases WHERE idExpediente = e.id)
]]>
  

Ответ №1:

Вы можете использовать <return-scalar> . Смотрите документацию.

Кстати, если вы ожидаете a <return-join> , вы также должны выбрать его столбцы.

Комментарии:

1. Я пробовал этот метод, но с помощью return-scalar я не могу отобразить это скалярное значение как свойство в классе. Это моя проблема, верните весь класс плюс это дополнительное поле