我正在使用实体框架
我有桌子A& B in 1:n。
假设我在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异常中只有更多数据,我只能依赖这种机制。
答案 0 :(得分:1)
You cannot delete Rows from A (your primary key table) where there are related records in B (foreign table)
。这违反了这种关系。因此,您需要first delete them from B
和then delete from A
。或者你可以做ON DELETE CASCADE
。请Check out this example here