2

我正在尝试使用sp_execute_remote带有 Dapper 和 DynamicParameters 的 SQL 函数查询一组 Azure SQL 数据库,如下所示:

Task<List<T>> ExecuteMultiShardCommand<T>(SqlBuilder.Template Template, int Timeout = 120) 
{
    var mParams = new DynamicParameters(Template.Parameters);
    mParams.Add("@datasourcename", "<datasource>");
    mParams.Add("@statement", Template.RawSql, DbType.String);

    using (var conn = new SqlConnection(config["<sqlconnectionstring>"])) 
    {
        var results = await conn.QueryAsync<T>("sp_execute_remote", mParams, commandTimeout: Timeout, commandType: CommandType.StoredProcedure);

        return results.ToList();
    }
}

运行它会引发 SQL 异常:

System.Data.SqlClient.SqlException:过程需要“ntext/nchar/nvarchar”类型的参数“@statement”。

我没有在我的应用程序的任何地方配置 Dapper。不是DbType.Stringa的默认处理nvarchar吗?

4

0 回答 0