【问题标题】:Implementing a Lightweight TransactionScope实现轻量级 TransactionScope
【发布时间】:2012-07-27 07:47:10
【问题描述】:

我指的是这个 SO 问题: Bulk inserts taking longer than expected using Dapper

对于这个问题的@SamSaffron 评论:

“TransactionScope 做了一堆你通常不关心的 DTC 废话,除非我需要那个功能,否则会避免它,很容易滚动你自己的上下文附加到线程本地存储”

我知道如何使用附加到 [ThreadStatic] 变量的事务来滚动我自己的 TransactionManager,但是有一些可靠的方法可以模拟 TransactionScope,因此这些命令将自动登记我的事务?最终产品将是一个没有我们任何 MSDTC 管道的事务范围。

【问题讨论】:

    标签: c# ado.net transactionscope dapper micro-orm


    【解决方案1】:

    是的,看我的TextMetal项目,示例代码,注意Plumbing命名空间。如果您有任何问题,请给我发电子邮件。没有 MSDTC,只有 ADO.NET、工作单元模式和一些精心设计的数据访问代码!

    【讨论】:

    • +1 这是一个不错且有趣的实现,但是(可能我错了)我可以在一个工作单元中处理多个事务。如果我正确地获得了您的代码,那么您将与 uow 和事务建立一对一的关系。无论如何,汉克斯对破解事务范围类更感兴趣
    • 根据定义,一个工作单元意味着一个事务。听起来您真正想说的是,您在单个工作单元中有多个数据源连接,因此您需要分布式事务。我的实现假定没有 MSDTC 事务。
    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2011-01-19
    • 2010-10-07
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多