我想在我的实体的某些关系中激活删除级联,但我不想更改数据库。我想知道在实体框架中是否有办法做到这一点。
我的意思是,如果EF只是自动生成SQL调用以删除父项时删除所有相关记录,那将是完美的。
我试图将它添加到我的SonEntityTypeConfiguration类:
public SonEntityTypeConfiguration()
{
HasRequired(e => e.Parent)
.WithMany()
.WillCascadeOnDelete(true);
//(...)
}
但我收到此错误:
支持AuditoriaUnitOfWork'从那时起,情境就发生 数据库已创建。考虑使用Code First Migrations 更新数据库
所以似乎仍在尝试更改数据库。
有没有办法实现这一点,或者我应该放弃,只是让我的数据库管理员改变它?
答案 0 :(得分:1)
WillCascadeOnDelete
依赖于数据库级别的级联删除。因此需要更改架构。
在EF层未实现级联删除的原因是因为无法保证甚至可以使用EF。有许多方法可以访问数据库,但数据库有责任确保维护参照完整性。它不能依赖更高层。
答案 1 :(得分:0)
你有两个选择:你可以使用需要迁移的WillCascadeOnDelete(*如果你没有首先实现它),或者你可以自己删除任何相关的对象。