EF删除实体与自身有多对多关系/可选多对多关系

时间:2017-12-14 19:39:39

标签: entity-framework entity-framework-6

我有一个实体site,它有一个"好友网站"的概念。所以我将其定义为与自身的多对多关系

public class Site : Base
{
    public DateTime EstablishedDate { get; set; }
    public string Name { get; set; }
    public string URL { get; set; }

    public ICollection<Site> Buddies { get; set; }
}

配置:

public SiteConfig()
{
    HasMany(x => x.Buddies).WithMany();
}

这一直有效,直到我尝试删除有好友网站的site,此时我得到了引用约束错误。如何将多对多关系定义为可选(0到多个)?

1 个答案:

答案 0 :(得分:0)

在保存更改之前尝试调用Clear方法:

var site=Context.Sites.FirstOrDefault();
site.Buddies.Clear();// remove relationship but not entities
Context.Sites.Remove(site);
Context.SaveChanges();