Val*_*rie 2 c# t-sql sql-server dapper
我想知道是否可以像Truncate Table x使用 Dapper一样运行 TSQL 查询?
我试过的:
using (var con = DB.Connection)
{
con.Open();
var ret = con.Execute("Truncate Table [Y].[X]");
}
Run Code Online (Sandbox Code Playgroud)
附注。我不想为它创建一个 SP。
您似乎认为返回 -1 表示有问题。但根据文档 Truncate:
从表或表的指定分区中删除所有行,而不记录单个行删除。
Dapper 的Execute方法返回受影响的行。
所以 -1 对我来说似乎是合理的。
编辑添加
在对 GitHub 中的源代码进行进一步调查后,Dapper 的Execute扩展在后台调用了 SqlMapper 的 ExecuteImpl,它(由于它的调用方式只能有两种方式;但基本上都是两种方式)最终返回 IDbCommand 的ExecuteNonQuery. 因此,有了这块拼图,Martin Smith 来自MSDN 的 ExecuteNonQuery的信息适用:
对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值为 -1