1

我在父母中有一个TransactionScope孩子TransactionSope。子代TransactionScope在单一父代下被多次创建、执行和提交TransactionScope

父 TransactionScopeInsert在等待第二组插入语句一个接一个地完成执行时,负责将单个记录写入数据库。

完成第一个事务后,在子事务的第一次插入时出现问题。经过昨天以来的大量研究,我现在发现第二个插入运行的进程被第一个插入的进程阻塞。

SP_WHO2我通过在程序运行的情况下在 sql server 中运行发现了这一点。

同时,插入过程中涉及的两个表之间存在一对多的关系。第一个插入在父表上执行它的操作,而第二个将在子表上执行。

每当我删除两个表之间的关系约束时,事务都会通过,但在约束打开时不会

我的问题是如何解锁被第一个插入阻止的第二个进程?

4

1 回答 1

1

如果每个 TransactionScope 使用不同的连接,那么这是预期的并且是设计使然。

现在,我不是 c# 方面的专家,但是......

于 2010-01-10T19:40:48.300 回答