Entity Framework 核心的自定义执行策略
Custom Execution Strategy With Entity Framework Core
我有一个 .Net Core 3.1 Windows 服务 运行 使用带有自定义 ExecutionStrategy
的 EF Core。此策略在 ShouldRetryOn()
中具有一些逻辑,可在发生异常时执行基于时间的日志记录。从我需要的时候发出警告的角度来看,它工作得很好。
我想知道 ExecutionStrategy
中是否有办法知道重试尝试是否成功。假设我的 MaxRetryCount
为 10,但在重试 3 次后成功了,我想知道是否成功。
我确实研究了 Execute
和 ExcecuteAsync
方法,但它们只被调用一次,因此似乎没有办法与它们相关联。我在 ExecutionStrategy
中没有看到我可以用来接收通知的任何其他内容。
我给 EF 团队做了一个 related post on github。
To know if the operation succeeded in general (with or without
retries), you can override Execute and ExecuteAsync, call their base
methods, and if those base methods haven't raised any exception, then
the operation succeeded.
我有一个 .Net Core 3.1 Windows 服务 运行 使用带有自定义 ExecutionStrategy
的 EF Core。此策略在 ShouldRetryOn()
中具有一些逻辑,可在发生异常时执行基于时间的日志记录。从我需要的时候发出警告的角度来看,它工作得很好。
我想知道 ExecutionStrategy
中是否有办法知道重试尝试是否成功。假设我的 MaxRetryCount
为 10,但在重试 3 次后成功了,我想知道是否成功。
我确实研究了 Execute
和 ExcecuteAsync
方法,但它们只被调用一次,因此似乎没有办法与它们相关联。我在 ExecutionStrategy
中没有看到我可以用来接收通知的任何其他内容。
我给 EF 团队做了一个 related post on github。
To know if the operation succeeded in general (with or without retries), you can override Execute and ExecuteAsync, call their base methods, and if those base methods haven't raised any exception, then the operation succeeded.