asp.net中数据库事务管理

江枫思渺然 提交于 2019-11-28 05:10:56

 

英文搜索关键字:

文章地址:https://stackoverflow.com/questions/313199/sql-transactions-best-way-to-implement-in-asp-net

文章标题:Sql Transactions:ASP.Net中实现的最佳方式

Database transaction management in asp.net

示例代码:

首先,我不会在页面中处理事务逻辑。编写某种类型的业务类来实现这一点 - 服务,数据实用程序类,您可以从ASP.Net中抽象出来。

接下来,如果您使用的数据库可以订阅像SQL Server这样的分布式事务,您可以查看使用TransactionScope类(在System.Transactions命名空间中,引用System.Transactions.dll)。

using(TransactionScope scope = new TransactionScope())
{
  SaveObjectOne(); //these are just psuedo-code statements
  SaveObjectTwo(); //replace these with your code that saves various objs
  SaveObjectThree();
  scope.Complete(); //this commits the transaction, unless exception throws
}

的TransactionScope实现IDisposable,所以当使用调用Dispose()方法交易将回滚如果完成()从未被调用。您需要启用分布式事务处理协调器以使用TransactionScope

 

并非总是如此,但它极大地简化了事情。

有关何时需要启用DTC的更好参考,请访问msdn.microsoft.com/en-us/library/ms229978.aspx -  

最好再看看国内的示例,看下原文。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!