在实体框架中重试策略
本文关键字:重试 策略 框架 实体 | 更新日期: 2023-09-27 17:57:45
我想在我正在进行的项目中实现重试策略,该项目使用连接到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)
{
}
}
}
但是在我想使用模型进行查询的任何地方都这样做是非常麻烦的。有没有办法在模型中实现这一点,这样我就不必担心了?
我想到的一种方法是使用inherit和override DbCommand
、ExecuteScalar()
、ExecuteNonQuery()
等,以便它们重复调用基类的方法一定次数,但我想知道是否有更简单的方法可以做到这一点?
目前不可能"使用模型"。你必须手动实现它。要么在存储库中,要么在某个"数据访问适配器"中(如果您正在使用类似的东西)。或者,如果你想走硬核:),你当然可以创建自己的IDbConnection、IDbCommand等。