我正在尝试通过Dapper通过存储过程运行SQL备份(我的应用程序的其余部分使用Dapper,所以我更喜欢让这部分继续运行它).它工作得很好,直到CommandTimeout启动.
using (var c = SqlConnection(connstring))
{
c.Open();
var p = new DynamicParameters();
// fill out p
c.Execute("xp_backup_database", p, commandType: CommandType.StoredProcedure);
}
Run Code Online (Sandbox Code Playgroud)
我知道的唯一CommandTimeout设置是在SqlCommand中.有没有办法通过Dapper设置?
我正在使用Dapper.NET,当我执行下一个代码时:
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
con.Execute(@" insert Clients(name) values(@Name)", new {Name = "John"});
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
它执行的查询是下一个:
(@Name nvarchar(4000)) insert Clients(name) values(@Name)
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么Dapper将字符串翻译成nvarchar(4000)?我的意思是......在数据库上,名字字段是nvarchar(50) ......
有人面对这个错误吗?你是如何解决的?你找到了另一个这样的bug吗?