【发布时间】:2017-08-30 08:09:00
【问题描述】:
我有一个在父子关系中引用自身的实体。我需要先了解如何使用代码和流畅的 API 来实现这一点。下面是我的实体类。
public class MenuItem
{
public int Id { get; set; }
public string LinkText { get; set; }
public string ControllerName { get; set; }
public string ActionName { get; set; }
public MenuItem Parent { get; set; }
public int ParentId { get; set; }
private IList<Role> Roles;
private IList<MenuItem> ChildMenuItems;
public MenuItem()
{
Roles = new List<Role>();
ChildMenuItems = new List<MenuItem>();
}
}
我尝试在我的实体配置中使用以下代码。
HasOptional(m => m.Parent)
.WithMany(m => m.ChildMenuItems)
.HasForeignKey(m => m.ParentId)
.WillCascadeOnDelete(false);
但我收到了这个错误 -
在模型生成过程中检测到一个或多个验证错误:
Vantage.Data.EF.MenuItem_Parent: : 多重性与 角色“MenuItem_Parent_Target”中的引用约束 关系'MenuItem_Parent'。因为所有的属性在 依赖角色是不可为空的,主要角色的多重性 必须是“1”。
感谢所有帮助。
谢谢。
【问题讨论】:
标签: entity-framework ef-code-first self-referencing-table