根据此链接:EF Code First DBContext and Transactions
我应该使用statement语句将savechanges包装在TransactionScope中。
我认为SaveChanges的工作方式类似于或是一种交易方法。
示例:
在服务方法中,我删除并在服务方法结束时在一个http请求中添加不同的实体我执行SaveChanges one ONE Context。
我永远不会有多重背景。它始终与Ninject在http请求的生命周期中创建的上下文注入相同,并在存储库之间共享。
当我有多个dbcontext时,我只需要在TransactionScope中包装DbContext.SAveChanges吗? - 因为这些可能是多个数据库,也就是分布式事务 - ?
答案 0 :(得分:3)
如果;
,则无需将SaveChanges调用包装在另一个TransactionScope中总之,您可以使用相同的上下文执行多个删除/添加操作,并最终调用SaveChanges方法一次 - 它们将全部应用于一个事务中。只有在嵌套事务方案中才需要TransactionScope。