0

我想删除与其他表有外键关系的实体。

但我得到一个错误:

MERGE 语句与 REFERENCE 约束冲突

任何建议如何使它工作?

context.BulkDelete(entities);
4

1 回答 1

0

DELETE CASCADE不幸的是,出于安全原因,除非您启用了外键,否则无法使用 EF 扩展自动删除外键行。

如果你想删除,你需要先自己删除外键数据:

context.BulkDelete(entities.Select(x => x.ForeignKeyNavigation);
context.BulkDelete(entities);

或者

context.MyForeignKeySets.DeleteRangeByKey(entities.Select(x => x.ForeignKeyID).Distinct());
context.BulkDelete(entities);

或者

context.MyForeignKeySets.WhereBulkContains(entities.Select(x => x.ForeignKeyID).Distinct()).DeleteFromQuery();
context.BulkDelete(entities);

可能还有其他方法可以做到这一点,但在我们的库中没有自动的方法来做到这一点。

于 2021-08-12T12:19:43.417 回答