EF事务提交异常
事务提交失败有两种情况:
1、确实提交失败
2、提交成功,但是网络原因,没有返回成功
解决方案:
第1种情况:恢复网络后重新提交即可
第2种情况:不能重新提交
EF面临的问题:当提交失败时,EF不知道到底是发生了第一种情况还是第二种情况,所以不知道采取什么操作?
EF解决方案:有一个特性,可以让EF能够检查这两种情况,即DBConfiguration构造函数中加入
SetTransactionHandler(SqlProviderServices.ProviderInvariantName, () => new CommitFailureHandler());
EF原理:数据库中建表__Transactions,用来跟踪每一个事物的执行状态
弊端:该表__Transactions数据虽然EF会定期删除,但有时还是需要手动操作
posted on 2014-12-30 15:27 dotdotjava 阅读(534) 评论(0) 收藏 举报
浙公网安备 33010602011771号