我的查询应包含符号文字(@
)。如何用Dapper查询表达这个?
var num = cnx.Query<int>("declare @foo int = 2; select @foo").Single();
我尝试使用文字作为解决方法:
var num = cnx.Query<int>(
"declare {=at}foo int = 2; select {=at}foo", new { at = "@" }
).Single();
但由于不支持字符串文字,因此抛出NotSupportedException
...
(请注意,在我的真实代码中,我有其他@parameters,我实际上想要替换并自动转义给我,所以我宁愿坚持使用Dapper,如果可能的话,而不是仅使用原始{{1 }}。)
答案 0 :(得分:6)
喔。我想到了。如果您的@param
实际上并未绑定到任何内容,则会将其按原样传递给基础SqlCommand
,然后将其直接传递给数据库。
换句话说,你不需要做任何特别的事情来让它发挥作用。我的第一个例子应该运行正常。傻我。