.net TransactionScope是否处理非常复杂的数据库事物?

时间:2010-07-16 18:39:32

标签: .net transactions

我的任务是证明或反驳.net中的交易支持。我们都知道TransactionScope可以处理提交/回滚简单的事情,比如在3个不同的表中插入3条记录,然后删除5个其他表中的5条记录。

如果这些插入/删除具有触发器,我的团队不确定TransactionScope是否可以正确处理事务。或者,如果我们执行一个拥有它自己的嵌套事务的SP。

.net事务支持是否处理这些更复杂的情况?您是否必须指定任何不那么明显的选项才能使其全部工作?

  

我听说我们的一些SP可能会导致我们出现问题,因为有几个自己提交子事务。有没有人知道这个特定场景是否由TransactionScope处理?

1 个答案:

答案 0 :(得分:2)

我们正在使用TransactionScope进行一些非常复杂和冗长的数据库操作,涉及十几个或更多表中的数千行。它处理得很好。但是,IMO,你不想在存储过程和/或触发器中启动和提交事务。你应该让你的调用(C#)代码处理它。通过处理较低存储过程级别的事务,您将失去很大的灵活性。

另外,使用TransactionScope时要小心,将自己限制为单个连接对象。如果不这样做,事务将升级为MTC事务,这需要在客户端和服务器上运行MTC服务。