【问题标题】:Difference Between Transaction and TransactionScope事务和事务范围之间的区别
【发布时间】:2011-09-23 12:06:30
【问题描述】:

我正在开发一个与 SQL Server 2005 数据库通信以执行一些存储过程的应用程序。我的客户要求在 C# 端而不是由 SQL Server 管理所有事务,因此我在访问数据库时使用System.Transactions.TransactionScope。但是,我刚刚看到System.Transactions.Transaction 数据类型,我很困惑……每种类型的主要优点/缺点是什么?我应该使用哪一个?

请注意,我还必须使用 Enterprise Library 的数据访问应用程序块。

【问题讨论】:

  • My client demands that ... .. 为什么?客户真正想要/害怕什么?几乎可以肯定的是,他们实际上并没有直接想要这个——他们想要别的东西,并决定将 Transaction 强制转换为 C# 是这样做的方法。 “例如,我在某处读到 SQL 事务不可靠”......等等。我怀疑除非你了解他们真正想要什么,否则你能否解决他们潜在的恐惧/欲望。

标签: c# sql-server-2005 transactions transactionscope


【解决方案1】:

来自 msdn:

TransactionScope 类提供了一个 将代码块标记为的简单方法 参与交易, 无需您与交易本身进行交互。一种 交易范围可以选择和 管理环境事务 自动地。由于其易于使用 和效率,建议 您使用 TransactionScope 类 开发交易时 应用。 当你实例化 TransactionScope,事务 经理确定哪个交易 参加。一旦确定, 范围始终参与其中 交易。该决定基于 两个因素:环境是否 交易存在且价值 TransactionScopeOption 的 构造函数中的参数。这 环境交易就是交易 您的代码在其中执行。你 可以获得对环境的参考 通过调用静态事务 交易的当前财产 类。

您可以在此处阅读更多相关信息:

http://msdn.microsoft.com/en-us/library/ms172152(v=vs.90).aspx

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope(v=vs.90).aspx

关于 .NET 2.0 中事务的精彩(有点旧)文章

http://msdn.microsoft.com/en-us/library/ms973865.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2014-08-30
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多