如何首先使用代码创建自引用表?

时间:2017-08-30 08:09:00

标签: entity-framework ef-code-first self-referencing-table

我有一个在父子关系中引用自身的实体。我需要先了解如何使用代码和流畅的API来实现这一点。下面是我的实体类。

`20—0
¿ ABÚEADD LDIDI ALBARH, JDSE
AHTÚHIÚ
—- EnlúndeLarreájzegm25- Sºt] . . . . . 944 355019
: ABDGADD 5E'I'IEH ÁLUAREI 5EUERIHD`

我尝试在我的实体配置中使用以下代码。

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>();
    }
}

但是我收到了这个错误 -

  

在模型生成期间检测到一个或多个验证错误:

     
    

Vantage.Data.EF.MenuItem_Parent ::多重性与     角色'MenuItem_Parent_Target'中的引用约束     关系'MenuItem_Parent'。因为所有的属性     依赖角色是不可为空的,主要角色的多样性     必须是'1'。

  

所有帮助表示赞赏。

谢谢。

1 个答案:

答案 0 :(得分:0)

ParentId字段应该可以为空。如果需要parentid,您将无法创建任何记录。

只需更改public int ParentId { get; set; }

即可

public int? ParentId { get; set; }