【问题标题】:Transaction for .net operations.net 操作的交易
【发布时间】:2009-01-20 18:50:22
【问题描述】:

我必须在 Windows 应用程序中作为事务执行 3 个操作。这些不是 SQL 操作,否则我会使用 TransactionScope。第一个操作是在数据库中记录一些值,第二个是将电子邮件移动到 pst,第三个是将电子邮件移动到另一个邮箱。如果这些操作失败,我希望其他操作回滚到以前的状态。有什么办法,这笔交易可以实现。

【问题讨论】:

    标签: c# transactions


    【解决方案1】:

    您可以使用自己的 ResourceManager 并使用System.Transactions 来帮助您处理事务。

    http://www.codeguru.com/csharp/.net/net_data/sortinganditerating/article.php/c10993__1/

    但根据复杂性以及您需要它的频率,它可能是一个过于复杂的解决方案。

    【讨论】:

    • 我在找一篇关于 .NET System.Transactions 的教程文章,终于在这个回复中找到了一个链接——谢谢。
    【解决方案2】:

    除非您的电子邮件后端支持 DTC,否则您可以使用TransactionScope;请注意,TransactionScope 不仅限于 SQL 提供者;一些中间件工具支持它,甚至还有一个基于TransactionScope 的.NET 对象(不是any 对象——只有那些使用库的基类/属性包/等编写的对象)。

    就目前而言,您可能必须手动回滚。

    【讨论】:

      【解决方案3】:

      如果每个包含的操作都有适当的事务支持,那么“按规定”进行事务很容易,否则尝试以自己的 DIY 方式单独支持(提交/回滚)每个操作将是一场噩梦 :)
      正如 Marc 指出的那样,手动操作将是更简单的选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-18
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 2021-12-25
        • 2018-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多