2011-04-25 2 views
1

나는 Subsonic을 SqlAzure 데이터베이스와 함께 사용하고 있으며 효과가 있습니다. this blog article에 언급 된 제안 된 우수 사례를 구현하여 신청서를 개선하고 싶습니다.RetryPolicy in Subsonic

기사에 따르면, 내가 좋아하는 뭔가를 할 수 :이 내 모든 솔루션을 통해이 코드를 복사하여 붙여 넣을해야한다는 것을 의미하지만

var sqlAzureRetryPolicy = ... code omitted ...; 
return sqlAzureRetryPolicy.ExecuteAction<IEnumerable<Product>>(() => 
{ 
    // Invoke a LINQ query. 
    return result; 
}); 

을하고 나는 그것이 지루하고 오류가있을 거라고 생각 내 팀의 다른 구성원이 잊어 버릴 수도 있습니다. 최선의 해결책이라고 생각하지 않습니다. 더 좋은 방법이 있는지 궁금합니다.

누구나 어떻게 할 수 있습니까?

답변

1

확장 방법을 구현 한 적이 있습니까? 메서드를 클래스의 일부로 보이게하려면 기존 클래스 (예 : IEnumerable 및 IQueryable 포함)에 메서드를 추가 할 수 있습니다. 확장 메소드는 이러한 유형의 코드를 중앙 집중화하는 데 유용 할 수 있습니다. http://www.developer.com/net/csharp/article.php/3592216/Using-the-New-Extension-Methods-Feature-in-C-30.htm

나는 개인적으로 요구하는 것을하기 위해 확장 메서드 (TryOpen 및 TryExecuteReader를 만들었지 만)를 사용하지만 SqlCommand 및 SqlConnection 클래스는 사용하지 않습니다. 그래서 내 코드 샘플은 LINQ에 도움이되지 않습니다.

+0

매우 흥미로운 제안입니다. – desautelsj