冒号':'错误 - 并非所有命名参数都已在Nhibernate中设置?

时间:2010-04-05 14:14:51

标签: c# asp.net nhibernate castle-activerecord

每当我从用户界面传递char“:”时,我就遇到了问题。 NHibernate将其误认为是一个命名参数并抛出错误,因为它没有任何值。

例外是: -

  

并非所有命名参数都已存在   set:[%] [SELECT COUNT(*)FROM Table   t WHERE t.FirstName LIKE':%'AND   t.ID IN(38,20)]“

有什么工作吗?

2 个答案:

答案 0 :(得分:2)

您可能以错误的方式创建查询(连接字符串,可能?)

所有这些工作:

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

session.CreateQuery("from Test2 where FirstName like :expr")
       .SetParameter("expr", ":%")
       .UniqueResult<Test2>();

答案 1 :(得分:0)

使用SQL LIKE时需要转义特殊字符。尝试将参数传递为@"\" + ":";