を使用してTransientFaultHandling.RetryPolicy
います。エンティティ フレームワークを接続するためだけに Retry ポリシーで十分かどうかを知りたいです。エンティティが接続されたら、複数の場所でエンティティを使用します。接続を開いてから使用するまでの間に、接続が失われた場合はどうなりますか? 再試行ポリシーは接続を処理しますか?
接続クラス
static class Azure
{
static RetryPolicy policy = new RetryPolicy<MyRetryStrategy> (5,TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(2));
public static CrmEfEntities ConnectCustomerEntity()
{
CrmEfEntities customerEntity = null;
policy.ExecuteAction(() =>
{
customerEntity = new Entities(ConnectionStringCustomerDB());
string federationCmdText = @"USE FEDERATION Customer_Test_Federation(TestId =" + testId + ") WITH RESET, FILTERING=ON";
customerEntity.Connection.Open();
customerEntity.ExecuteStoreCommand(federationCmdText);
});
return customerEntity;
}
}
ここのように、コントローラーで上記のメソッドを呼び出しています。
public class EmployeeController : Controller
{
private static readonly CrmEfEntities _db = Azure.ConnectCustomerEntity();
public ActionResult Index()
{
var employeeList = GetEmployeeDetails().ToList();
return View(employeeList);
}
private static IEnumerable<EmployeeModel> GetEmployeeDetails()
{
var employee= from emp in _db.Employees
from coun in _db.Countries
where emp.CountryId == coun.Id
select new CompanyDetailsModel
{
Id = emp.Id,
Name = emp.Name,
countryName=coun.Name
};
return employee;
}
}