2012-02-27 95 views
0

如何使用ADO.NET手动事务跨两个数据库(在同一服务器上)删除记录?ASP.NET 1.1跨越两个数据库的事务

我碰到这样的:

TransactionScope in .NET 1.1

,但仍希望尽可能使用.NET 1.1手工事务。

+2

DId你复制了所有的代码?该类中显然有一个Dispose()实现。 – Joe 2012-02-27 21:03:08

+0

看起来好乔(+1),我会继续编码其余的。与此同时,这是不是可以像这里的第一个片段那样管理交易? http://msdn.microsoft.com/en-us/library/ms973865.aspx – IrishChieftain 2012-02-27 21:16:01

+2

ASP.NET 1.1 - >哇,不知道为什么,但在2012年,这听起来比COM更糟糕:-)我真的不明白。谁是负责公司架构设计决策的人员?他们是什么样的人?他们有基本的编程文化吗?他们是如何在这些职位上徘徊的? – 2012-02-27 21:27:23

回答

1

哇,自从我看了1.1以来已经有一段时间了。一个ado.net事务与一个连接相关联,所以在1个手动事务中没有真正的好办法做到这一点。我记得写一个自己的跨数据库txn管理类,其中一个执行命令基本上会注册它,我会自己跟踪txns。有我自己的TransactionScope或工作单元。如果某个“完成”方法被调用,那么如果出现错误或者最后全部提交,我会将其全部回滚。

在文章中的方法似乎更好,除了它会调用DTC(只要你愿意,这是可以的)。我不认为有更好的方法来做到这一点。

+0

调用DTC的含义是什么? – IrishChieftain 2012-02-27 21:56:19

+0

好吧,只需要在机器上安装DTC并进行正确配置,这并不是什么大问题,但已知可以让一些人适应大型装置,而且还需要配置等等。坦率地说,我不知道MSDTC分配了多少性能开销,但是它是一个协调您的事务的外部服务,并且用于协调企业分布式事务,所以如果您只需要在同一台服务器上需要两个数据库协调,它可能与打桩机驾驶钉子。 – swannee 2012-02-27 22:40:45

+0

(+1)谢谢,标记为答案:) – IrishChieftain 2012-02-27 23:00:15