【发布时间】:2015-03-25 16:52:03
【问题描述】:
我们在 Azure Sql 连接和命令上应用了 Microsoft 的 Enterprise Library Transient Fault Handling Block。
例如,
using(var sqlConnection = new ReliableSqlConnection(_connectionString, _connectionRetry, _commandRetry)
{
var command = sqlConnection.CreateCommand();
command.CommandText = "...";
sqlConnection.Open();
using(var reader = sqlConnection.ExecuteCommand<SqlDataReader>(command))
{
...
}
}
它适用于command.ExecuteReader(),这是没有重试策略的原始调用。但是如果代码使用DataSet和SqlDataAdapter怎么办:
using(var sqlConnection = new ReliableSqlConnection(_connectionString, _connectionRetry, _commandRetry)
{
var command = sqlConnection.CreateCommand();
command.CommandText = "...";
sqlConnection.Open();
// how to convert below codes to right way?
var adapter = new SqlDataAdapter(command);
var dataSet = new DataSet();
adapter.Fill(dataSet);
// handle dataSet
...
}
我们主要致力于一些遗留代码以添加一些重试策略。
【问题讨论】:
标签: c# ado.net dataset enterprise-library enterprise-library-6