C# 在事务中保存链接表时出现问题

C# 在事务中保存链接表时出现问题,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我使用ado.net在存储过程中执行插入,这都是在事务中执行的 假设我有三张桌子 Category Id (UNIQUEIDENTIFIER) Name Product Id (UNIQUEIDENTIFIER) Title ProductToCategory Product_Id Category_Id 我要做的是插入产品,然后插入ProductToCategory记录,其中包含我刚刚插入的产品Id 我遇到的问题是ProductToCate

我使用ado.net在存储过程中执行插入,这都是在事务中执行的

假设我有三张桌子

Category
    Id (UNIQUEIDENTIFIER)
    Name

Product
    Id (UNIQUEIDENTIFIER)
    Title

ProductToCategory
    Product_Id
    Category_Id
我要做的是插入产品,然后插入ProductToCategory记录,其中包含我刚刚插入的产品Id

我遇到的问题是ProductToCategory和Product FK_ProductToCategory_Product之间存在外键,该外键在以下情况下失败:

INSERT语句与外键约束冲突

我所期望的是,事务尚未提交产品记录,因此当联接表记录插入时,它会创建异常

那么,我该如何应对呢

我觉得我需要外键来确保某个产品是否被删除,其ProductToCategory记录是否也被删除


是否有其他方法可以解决此问题?

您可以为表发布DDL吗?这两个插入都是同一个存储过程的一部分吗?@dean我不知道ddl是什么?是的,两个插入都在同一sp中。您应该发布更多信息,如插入存储过程和外键的定义…打开SSMS,在对象资源管理器中定位产品表,右键单击它,选择脚本表为,然后创建为,然后选择新建查询编辑器窗口。将结果复制到此处,作为对问题的编辑。ProductToCategory也一样。和程序的邮政编码。