1

を使用して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;
    }
}
4

0 に答える 0