EF6 - 如何使用共享子表描述1:M的级联删除

时间:2014-04-01 17:38:27

标签: c# entity-framework

我的数据库上下文中有3个实体:人物,商店和地址。所有实体都有一个Id属性,即PK。

人们有1:M的地址。人员实体有一个虚拟列表。 商店的地址为1:M。商店实体有一个虚拟列表。

地址表将保存人员和商店的地址。

当我保留人员图表时,图表中的所有地址都应该与人员实体保持一致。

当我持有商店图表时,商店图表中的所有地址都应该与商店实体保持一致。

当我删除商店时,我希望EF删除与之关联的所有地址。 当我删除人员实体时,我希望EF删除与之关联的所有地址。

如何使用Fluent API设置这些关系?

谢谢!

1 个答案:

答案 0 :(得分:0)

我想我已经明白了。

在Store和People的映射器中,我设置了与级联删除的可选关系:

  this.HasMany(x => x.Addresses)
                .WithOptional() 
                .WillCascadeOnDelete(true);

这似乎有效,包括级联删除。