我在事务中通过DataContext进行了大量的插入操作。 我插入两种类型的对象:A和B.
我执行了许多sql插件,如:
INSERT INTO A (...) VALUES ('11111111-1111-1111-1111-111111111111',..)
INSERT INTO B (...) VALUES (
'21111111-1111-1111-1111-111111111111',
'11111111-1111-1111-1111-111111111111',...)
分别在
db.ExecuteCommand(sql.ToString(), processedParams.ToArray());
表B具有A的外键。
有时我会收到如下错误: 违反表“A”上的FOREIGN KEY约束“FK_B_A”。列“GUID”。
有时所有记录都成功插入到DB中。除动态生成的GUID外,数据总是相同的。
看起来插入到B中有时会在插入A之前出现。
答案 0 :(得分:4)
答案 1 :(得分:1)
谢谢大家的帮助。
在我的服务中,错误是交易清理过程中的副作用。它会回滚任何很长很长的事务。在插入表A和表B之间进行清理时会抛出错误,因为A中的记录不再存在。