每当我从用户界面传递char“:”时,我就遇到了问题。 NHibernate将其误认为是一个命名参数并抛出错误,因为它没有任何值。
例外是: -
并非所有命名参数都已存在 set:[%] [SELECT COUNT(*)FROM Table t WHERE t.FirstName LIKE':%'AND t.ID IN(38,20)]“
有什么工作吗?
答案 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时需要转义特殊字符。尝试将参数传递为@"\" + ":";
。