-1

我正在使用实体框架。
我在 1:n 中有表 A 和 B。
假设我删除了 A 中的许多行,并且表 A 中的 a 键行之一在表 B 中有一行或多行。

我得到带有以下文本的 sqlException

 The DELETE statement conflicted with the REFERENCE constraint "FK_A_B". 
 The conflict occurred in database "DCDCommunity", table "Template.Template",  
 column 'ApplicationTypeID'.  The statement has been terminated.

有没有办法获取违反外键的键的 ID。

重要编辑:

我知道我可以检查 B 是否有行。
但这很容易出现持久性问题。
(假设在检查之后立即发出另一个插入请求。)

通过不检查并让数据库抛出异常,我让他处理持久性(尤其是在多台机器上运行时)
现在 - 如果我在 SQL 异常中只有更多数据,我只能依靠这种机制。

4

1 回答 1

1

You cannot delete Rows from A (your primary key table) where there are related records in B (foreign table). 这违反了关系。因此,您需要first delete them from Bthen delete from A。或者你可以这样做ON DELETE CASCADE。请在此处查看此示例

于 2012-12-09T16:55:07.393 回答