【发布时间】:2013-07-14 10:22:08
【问题描述】:
我有一个像下面这样的对象:
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 ? (这是可选的)
【问题讨论】:
标签: entity-framework entity-framework-5