在实体框架中重试策略

时间:2013-02-04 11:01:24

标签: c# sql-server entity-framework

我想在我正在使用的项目中实现重试策略,该项目使用连接到MSSQL 2012的实体框架。我可以执行以下操作:

using (var model = new MyModel())
{
    for (var i = 0; i < 3; i++)
    {
        try
        {
            model.MyEntities.Where(x => x.Index < 1000);
            break;
        }
        catch (Exception ex)
        {
        }
    }
}

但是在我想要使用模型进行查询的任何地方都这样做非常麻烦。反正有没有在模型中实现这个,所以我不必担心它?

我想到的一种方法是继承DbCommand并覆盖ExecuteScalar()ExecuteNonQuery()等,以便他们重复调用基类的方法一定次数,但想知道是否有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

目前无法“使用模型”。你必须手动实现它。如果您正在使用类似的东西,请在存储库或某些“数据访问适配器”中。或者如果你想要去核心:),你当然可以创建自己的IDbConnection,IDbCommand等。