.Net 2.0 应用程序中的事务——使用什么?
我正在开发 .Net 2.0 应用程序,需要在代码中包装一些数据库事务。后端是 SQL Server 2008。
我已经离开 .net 几年了,我最后一次进行任何事务处理是在带有服务组件的 .Net 1.1 中。我了解 TransactionScope,并且想知道这是否是现在解决问题的好方法。
另外,在.Net 3.5中我假设还有其他方法可以做到这一点,比如使用WCF?只是想知道是否有人可以向我指出一两篇文章。非常感谢。
I'm working on a .Net 2.0 application and need to wrap some database transactions in my code. The backend is SQL Server 2008.
I've been away from .net for a few years, the last time I did any transaction processing was in .Net 1.1 with serviced components. I know about TransactionScope, and was wondering if that's a good way to go about things now.
Also, in .Net 3.5 I assume there are other ways to do this, say with WCF? Just wondering if someone could point me toward an article or two. Thanks very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
TransactionScope 是一个好方法,只要您对其进行检查即可。所有 ADO.Net 提供程序都了解 System.Transactions 对象,因此它们在 TransactionScope 下操作时将正确登记到后端事务中。
有两个问题:
从技术上讲,最后一点适用于使用任何资源管理器,但您不太可能使用数据库连接之外的任何其他 RM。如果您这样做,那么无论如何,加入分布式事务都是正确的操作。
TransactionScope is a good way, provided you keep it in check. All ADO.Net providers are aware of the System.Transactions objects so they will enlist properly into a back end transaction when operating under a TransactionScope.
There are two gotchas:
Technically the last point applies to using any resource manager, but is unlikely you'll use any other RM than your db connections. IF you do, then enlisting into a distributed transaction is the proper action anyway.