EF Extensions BulkDelete 方法不使用外键删除

EF Extensions BulkDelete method doesn't delete with foreign keys

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

但是我得到一个错误:

The MERGE statement conflicted with the REFERENCE constraint

有什么建议可以让它发挥作用吗?

context.BulkDelete(entities);

遗憾的是,出于安全原因,无法使用 EF 扩展自动删除外键行,除非您在外键上启用了 DELETE CASCADE

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

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);

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