无法在querystring上找到参数

时间:2016-09-22 16:28:08

标签: c# nhibernate

我有一个查询字符串,参数在撇号之间需要这个:

select * from myTable t
where t.name= ':name'

然而,在调试代码时,他告诉我找不到参数:

protected bool validName(string n, NHibernate.ISession sesion){


var result= sesion.CreateSQLQuery(Queries.getQuery("queryName"))
                .SetParameter("name", n)
                .UniqueResult();

2 个答案:

答案 0 :(得分:0)

Query解析器应该为您的sql语句应用。尝试按照以下方式进行查询:

select * from myTable t where t.name = :name

我建议你使用HQL作为样本:

var result = session.CreateQuery("from Entity t where t.name = :name")
                    .SetParameter("name", n)
                    .UniqueResult();

其中Entity是引用您的表的实体(通过映射)。

答案 1 :(得分:0)

撇号用于表示文字字符串。它们应该也不能用于参数名称。