Database.BeginTransaction 与 Transactions.TransactionScope [重复]

2024-04-04

有什么区别System.Transactions.TransactionScope和 EF6 的Database.BeginTransaction?

有人可以举一个小例子,或者只是解释一下当有明显差异时应该使用哪一个?

P.S:在我的项目中,我使用 EF6。我已经阅读了文档,但没有多大帮助。还查找了示例,但他们更倾向于使用SqlConnection.BeginTransaction现在微软推出了这个新的Database.BeginTransaction in EF6.


我在Entity Framework 6的文档中找到了答案:

随着 EF6 的推出,Microsoft 建议使用新的 API 方法:Database.BeginTransaction() and Database.UseTransaction()。虽然System.Transactions.TransactionScope仍然得到很好的支持,不再是必要的对于大多数 EF6 用户。

While Database.BeginTransaction()仅用于数据库相关操作事务,System.Transactions.TransactionScope除此之外,还使得“纯 C# 代码”也可以是事务性的。

因此,使用Database.BeginTransaction()在 EF6 的事务中仅执行与数据库相关的操作,否则使用System.Transactions.TransactionScope用于在事务中将数据库操作和 C# 代码混合在一起。

对于那些仍然喜欢TransactionScope方法,建议检查其局限性,尤其是在云场景中(云场景不支持分布式事务)。

更多信息可以找到here http://msdn.microsoft.com/en-us/data/dn456843

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Database.BeginTransaction 与 Transactions.TransactionScope [重复] 的相关文章

随机推荐