我有两个实体。 Profile
和ProfileImages
。获取Profile
之后我想删除ProfileImages
到Profile
,而不删除对Profile
的引用(将其设置为null
)。如何通过流畅的API和级联删除来完成?我是否设置了HasRequired
属性或CascadeDelete
属性?
public class Profile
{
//other code here for entity
public virtual ICollection<ProfileImage> 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; }
}
答案 0 :(得分:3)
您可以将其添加到DB Context
:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Profile>()
.HasOptional(c => c.ProfileImages)
.WithOptionalDependent()
.WillCascadeOnDelete(true);
}
在此处阅读更多内容:Enabling Cascade Delete
您可以使用以下命令在关系上配置级联删除 WillCascadeOnDelete方法。如果是依赖实体的外键 不可为空,然后Code First设置级联删除 关系。如果依赖实体上的外键可以为空, Code First不会在关系上设置级联删除,以及何时 删除主体后,外键将被设置为null。