在EF中正确的使用事务
1.EF中使用事务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using (TransactionScope tran = new TransactionScope()) { try { using ( var _context = new DbContext()) { //执行相关操作 _context.SaveChanges(); } using ( var _context2 = new DbContext()) { //执行相关操作 _context2.SaveChanges(); } tran.Complete(); } catch (Exception ex) { //执行错误处理 } } |
之所以使用两个 using(var _context2= new DbContext())是为了解决有可能出现的“事务中出现异常回滚,数据库数据已经回滚,但是实体模型缓存没有回滚”的问题
2.另付PetaPoco中使用事务的方法:
1 2 3 4 5 6 7 | using ( var scope=db.Transaction) { // 其他任务处理 … scope.Complete(); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步