小巧的参数不起作用?

时间:2014-09-12 17:13:43

标签: dapper

Dapper 1.34(在早期的Dapper ver 1.1x上运行正常)。

db.Query(@"从@TableName中选择[what] where [PREFIX] =' @ Prefix' order by [something] desc",                 new {TableName = tableName,Prefix = prefix})

错误:System.Data.SqlClient.SqlException(0x80131904):必须声明表变量" @ TableName"。

我在尝试定义DynamicParameters并传递它们时遇到同样的错误。

======= 我目前正在进行字符串替换{%1} ..但这似乎不可接受......

我可以请一个样本,还看一下测试类的小巧玲珑我看不到它在运行,也许我的项目设置有问题?

1 个答案:

答案 0 :(得分:0)

不,由于SQL的工作原理,这种方法从未正常工作:

  • 表名不能参数化,而dapper从未提供过这个;如果你传递一个DataTable作为一个表值参数, 可以工作 - 但是那些精力充沛 支持 - 但我不认为
  • 这就是你的意思
  • '@Prefix'是一个字符串文字;你的意思是@Prefix(没有单引号)