【发布时间】:2025-12-17 11:35:01
【问题描述】:
在使用由 Entity Framework 和/或 Linq to SQL 支持的 WCF RIA 服务时,是否有任何已发布的指南来处理 SQL Azure 中的瞬态故障场景?
我们研究了 CAT 重试库 (Transient Fault Handling Framework for SQL Azure) 和文档 (Retry Logic for Transient Failures in SQL Azure),尤其是与 Entity Framework 和 Linq to SQL 相关的部分。
例如,在 Linq to SQL 的情况下,我们被指示将查询/更新代码包装到 ExecuteAction 中并使用 RetryPolicy 执行它。
这篇文章 (Silverlight 4, EF 4, RIA Services & Windows Azure together) 表明,我们所能期望的最好的结果就是增加连接的弹性。但是,我们似乎可以通过覆盖 LinqToEntitiesDomainService 和 LinqToSqlDomainService 上的 PersistChangeSet 方法并在那里添加我们的重试来获得我们想要的结果。
例如(伪代码)
protected override bool PersistChangeSet()
{
e.Result = retry.ExecuteAction(() =>
{
return base.PersistChangeSet();
});
return e.Result;
}
对这种方法有什么想法吗?是否有任何文档或指南,特别是与 RIA 服务相关的?
【问题讨论】:
-
ria 服务和实体框架是否存在特定问题? Ria 服务似乎是一个与实体框架的重试问题无关的实现细节。
标签: error-handling wcf-ria-services azure-sql-database