问题描述
sqlAzureExecutionStrategy不能与用户启动的事务一起使用。在事务中执行代码后,它将立即引发异常。 MS解决方案是更改代码
var executionStrategy = new sqlAzureExecutionStrategy();
executionStrategy.Execute(
() =>
{
myCode();
});
但这不是一个选择,因为我有很多旧代码,我无法更改那么多代码,并且事务范围内的代码可能无法执行两次。
所以我的解决方案是在没有事务的情况下使用sqlAzureExecutionStrategy,如果代码在事务内(至少我在代码的某些部分中有重试),则使用DefaultExecutionStrategy
public class MyConfiguration : DbConfiguration
{
public MyConfiguration()
{
SetExecutionStrategy("System.Data.sqlClient",() =>
{
IDbExecutionStrategy returValue;
if (Transaction.Current == null)
returValue = new sqlAzureExecutionStrategy();
else
returValue = new DefaultExecutionStrategy();
return returValue;
});
}
}
我进行了一些快速测试,并且可以运行...但是我可以遇到问题吗?这是一个好主意还是一个可怕的主意?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)