ef删除与自身的许多关系 /可选的多一对多实体



我有一个具有"好友站点"概念的实体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到许多关系)?

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

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

最新更新