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);
可能还有其他方法可以做到,但我们的库中没有自动方法。
我想删除一个与其他表有外键关系的实体。
但是我得到一个错误:
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);
可能还有其他方法可以做到,但我们的库中没有自动方法。