Недавно коллега столкнулся с проблемой, когда он передавал один параметр даты в именованный запрос. В запросе параметр использовался дважды, один раз в выражении и один раз в предложении GROUP BY. К нашему удивлению, мы обнаружили, что NHibernate использовал две переменные и дважды отправил один именованный параметр, как @ p1 и @ p2. Такое поведение приводило к тому, что SQL не выполнял запрос, поскольку обычный «столбец в предложении select отсутствует в предложении group by» (я перефразирую курс).
Это нормальное поведение? Можно ли это изменить? Сдается мне, что если у вас есть имя параметра вроде: startDate, NHibernate нужно только передать @ p1 независимо от того, сколько раз вы можете сослаться на: startDate в запросе.
Есть комментарии?
Проблема была решена путем использования другого подзапроса для устранения ошибки синтаксического анализа SQL.