Database.BeginTransaction VS Transactions.TransactionScope [英] Database.BeginTransaction vs Transactions.TransactionScope

查看:254
本文介绍了Database.BeginTransaction VS Transactions.TransactionScope的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

之间的区别是什么 System.Transactions.TransactionScope 和EF6的 Database.BeginTransaction

What is the difference between System.Transactions.TransactionScope and EF6's Database.BeginTransaction?

可能有人举个小例子,或只能向有明显的区别时,使用哪一个?

Could someone give a small example or just explain which one to use when with a clear difference?

P.S:在我的项目,我使用EF6。我已经阅读文档,但它并没有多大帮助。此外抬头的例子,但他们宁可使用 SqlConnection.BeginTransaction 现在MS已经推出了这个新的 Database.BeginTransaction 的EF6。

P.S: In my project, I'm using EF6. I've already read the documentation but it didn't help much. Also looked up the examples but they are rather using SqlConnection.BeginTransaction and now MS has introduced this new Database.BeginTransaction in EF6.

推荐答案

我发现,在实体框架6的文档答案:

I found out the answer in Entity Framework 6's documentation:

通过引进EF6,微软建议使用新的API方法: Database.BeginTransaction() Database.UseTransaction() System.Transactions.TransactionScope 只是旧式编写事务code的。

With the introduction of EF6, Microsoft recommends to use new API methods: Database.BeginTransaction() and Database.UseTransaction(). System.Transactions.TransactionScope is just old style of writing transactional code.

Database.BeginTransaction()仅用于数据库相关的业务交易,而 System.Transactions.TransactionScope 使得可能的纯C#code'还事务。

But Database.BeginTransaction() is used only for database related operations transaction, whereas System.Transactions.TransactionScope makes the possible 'plain C# code' also transactional.

因此​​,使用 Database.BeginTransaction()在以往只做数据库相关的操作在EF6交易以其它方式使用 System.Transactions.TransactionScope 的数据库操作和C#code混合在一起在一个事务中。

Hence, use Database.BeginTransaction() where ever doing only db related operations in a transaction in EF6 otherwise use System.Transactions.TransactionScope for mixing db operations and C# code together in a transaction.

进一步的信息可以发现

Further information can be found here

这篇关于Database.BeginTransaction VS Transactions.TransactionScope的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆