我必须维护两个不同数据库之间的事务。如果Database1中发生任何错误,那么我需要回滚,然后database2中的所有更改都应该回滚。
我的web.config文件中有两个连接字符串。
答案 0 :(得分:2)
答案取决于两个数据库服务器实例之间是否需要分布式事务,还是单个实例中两个数据库之间的事务。在第一种情况下,您需要一个像MSDTC这样的事务管理器,但在第二种情况下,数据库服务器应该能够自己完成这项工作。
如有必要,TransactionScope会将交易升级为MSDTC。对此的规则有些微妙。如果这两个数据库位于单个SQL Server 2008实例上,则不应该使用MSDTC。
答案 1 :(得分:1)
您可以使用TransactionScope类:
using(var tx = new TransactionScope())
{
// TODO: your DB queries here
tx.Complete();
}