【问题标题】:Possible to get SqlTransaction from ambient Transaction?可以从环境事务中获取 SqlTransaction 吗?
【发布时间】:2011-08-08 23:24:49
【问题描述】:

由于 SQL Server 的 SavePoints 功能 (SqlTransaction.Save()),我想以非常有限的方式使用 SqlTransactions(我真的需要这个功能),同时在所有其他地方仍然使用环境事务。我意识到这意味着这段代码(和依赖项)现在是特定于 SQL Server 的——这很好。但是,出于最佳实践目的,我仍然更喜欢在所有其他地方遵循首选的环境事务。 (如果我们需要迁移到 Oracle 或其他东西,那么我们需要重新编写这部分代码,但不想重新编写整个代码库。)

是否可以从Transaction.Current(返回System.Transactions.Transaction 类型的对象)或其他方式获取当前的SqlTransaction? (我可能错了,但我猜这最终是在运行时实现环境Transaction 对象的对象)

(related but different question I'm currently working on if you need more info on why)

【问题讨论】:

  • 我的研究表明,每个人都说我不应该混合这些,然后给出哲学原因(更难维护等)。据我所知,我不应该混合这些没有技术原因。如果有人可以提供,那也可以回答这个问题。

标签: .net sql-server .net-4.0 transactions sql-server-2008-r2


【解决方案1】:

据我所知,这根本做不到。鉴于我对此没有任何回应,我将其标记为答案。我仍然可能是错的。不过,我根本无法弄清楚这一点,也没有时间进一步研究它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2015-10-11
    • 2010-09-28
    • 1970-01-01
    • 2010-10-28
    • 2016-05-21
    • 1970-01-01
    相关资源
    最近更新 更多