我目前正在使用各种方法创建 SQLWorker 类,这些方法作为更广泛框架的一部分执行各种 sql 命令。我有一个用于执行 sql 脚本的方法。如下:
public object ExecuteScript(string sql, ExecutionType executionType = ExecutionType.NonQuery,
int statementTimeout = 1800)
{
using (var connection = new SqlConnection(ConnectionString))
{
connection.InfoMessage += (sender, args) =>
_infoMessageText.AppendLine(args.Message);
var server = new Server(new ServerConnection(connection));
server.ConnectionContext.StatementTimeout = statementTimeout;
switch (executionType)
{
case ExecutionType.NonQuery:
return server.ConnectionContext.ExecuteNonQuery(sql);
case ExecutionType.Scalar:
return server.ConnectionContext.ExecuteScalar(sql);
case ExecutionType.Reader:
return server.ConnectionContext.ExecuteReader(sql);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我当前收到错误:参数 1:无法从“System.Data.SqlClient.SqlConnection”转换为“Microsoft.SqlServer.Management.Common.IRenewableToken”
该特定行是
var server = new Server(new ServerConnection(connection));
Run Code Online (Sandbox Code Playgroud)
ServerConnection 类似乎需要 IRenewableToken 参数,但它具有接受 SqlConnection 参数的构造函数。
我不确定我错过了什么我相信我有正确的 NugetPackages 并有以下 …