使用Fluent API进行级联删除

我有两个实体。 ProfileProfileImages 。 获取Profile我想通过Profile删除ProfileImages而不删除对Profile的引用(将其设置为null )。 如何通过流畅的API和级联删除来完成? 我是否设置了HasRequired属性或CascadeDelete属性?

 public class Profile { //other code here for entity public virtual ICollection ProfileImages { get; set; } } public class ProfileImage { // other code here left out [Index] public string ProfileRefId { get; set; } [ForeignKey("ProfileRefId")] public virtual Profile Profile { get; set; } } 

您可以将其添加到DB Context

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .HasOptional(c => c.ProfileImages) .WithOptionalDependent() .WillCascadeOnDelete(true); } 

在此处阅读更多内容: Enabling Cascade Delete

您可以使用WillCascadeOnDelete方法在关系上配置级联删除。 如果依赖实体上的外键不可为空,则Code First会在关系上设置级联删除。 如果依赖实体上的外键可以为空,则Code First不会在关系上设置级联删除,并且当删除主体时,外键将设置为null。