我有一个如下对象:
public class AdminMenuItem : BaseEntity
{
public int? ParentMenuItemId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public AdminMenuItem ParentMenuItem { get; set; }
}
我添加了两个菜单项。一个是没有父菜单的 A。另一个 B 和 A 是 B 的父菜单项。
当我删除 A 时,它会在下面抛出异常:
The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_dbo.AdminMenuItem_dbo.AdminMenuItem_ParentMenuItemId".
冲突发生在数据库“A61DB”、表“dbo.AdminMenuItem”、列“ParentMenuItemId”中。该语句已终止
在删除父项时我应该做什么配置来删除子项?我应该通过将其置于循环中手动完成还是在实体框架 5 中有足够的方法来完成它?我尝试使用WillCascadeOnDelete但我无法成功。
还有没有办法将子对象外键设置为 null ?(这是可选的)