【问题标题】:Can we define a distributed transaction with Database.BeginTransaction?我们可以用 Database.BeginTransaction 定义分布式事务吗?
【发布时间】:2015-02-22 05:43:45
【问题描述】:

我已经搜索了在 Entity Framework 中创建事务的方法,并且我知道我们可以使用 EF5 中的 TransactionScope 创建分布式事务,如此处所述。 Using Transactions or SaveChanges(false) and AcceptAllChanges()? 我想知道我们是否可以使用 Database.BeginTransaction 创建分布式事务? 提前致谢。

【问题讨论】:

  • 链接不一定涉及分布式事务。 DT 跨网络主机。你指的是这个吗? AFAIK DbTransaction(由 Database.BeginTransaction 启动)永远无法升级为 DTC。

标签: c# transactions entity-framework-5 entity-framework-6 distributed-transactions


【解决方案1】:

Database.BeginTransaction 将始终在数据库中启动本地事务,而不是分布式事务。

创建新的 TransactionScope 将从本地数据库事务开始,但会在需要时自动升级为分布式事务。也就是说:如果您使用的是 SQL Server 数据库。使用其他数据库时,创建 TransactionScope 将创建分布式事务。 那是因为只有 SQL Server 支持事务提升...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多