Двоеточие ':' ошибка - не все именованные параметры были установлены в Nhibernate? - PullRequest
3 голосов
/ 05 апреля 2010

У меня возникает проблема, когда я передаю символ ":" из пользовательского интерфейса. NHibernate ошибочно принимает его за именованный параметр и выдает ошибку, поскольку для него нет никакого значения.

Исключение составляет: -

Не все названные параметры были установить: [%] [ВЫБЕРИТЕ СЧЕТЧИК (*) ИЗ таблицы t ГДЕ t.FirstName НРАВИТСЯ ':%' И t.ID IN (38, 20)] "

Есть ли работа вокруг?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2010

Вы, вероятно, создаете запрос неправильно (возможно, объединяете строки?)

Все эти работы:

session.CreateCriteria<Test2>()
       .Add(Restrictions.Like("FirstName", ":%"))
       .UniqueResult<Test2>();

session.CreateQuery("from Test2 where FirstName like :expr")
       .SetParameter("expr", ":%")
       .UniqueResult<Test2>();
0 голосов
/ 05 апреля 2010

Вам нужно экранировать специальные символы при использовании SQL LIKE. Попробуйте передать параметр как @"\" + ":";.

...