Нумерация именованных параметров имен NHibernate @ p1 @ p2 и т. Д. - PullRequest
3 голосов
/ 18 июня 2010

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

Это нормальное поведение? Можно ли это изменить? Сдается мне, что если у вас есть имя параметра вроде: startDate, NHibernate нужно только передать @ p1 независимо от того, сколько раз вы можете сослаться на: startDate в запросе.

Есть комментарии?

Проблема была решена путем использования другого подзапроса для устранения ошибки синтаксического анализа SQL.

1 Ответ

0 голосов
/ 18 июня 2010

Это может произойти, например, если используемая БД не поддерживает именованные параметры, в этом случае NHibernate использует позиционные параметры и копирует значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...