0
我有一個實體在父子關係中引用自己。我需要找出如何使用代碼和流利的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'。
所有幫助表示讚賞。
謝謝。