J'ai une entité qui a une référence à elle-même dans une relation parent-enfant. J'ai besoin de savoir comment mettre en œuvre ce code en utilisant d'abord et couramment l'API. Voici ma classe d'entité.Comment créer une table d'auto-référencement en utilisant le code en premier?
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>();
}
}
J'ai essayé d'utiliser le code ci-dessous dans ma configuration d'entité.
HasOptional(m => m.Parent)
.WithMany(m => m.ChildMenuItems)
.HasForeignKey(m => m.ParentId)
.WillCascadeOnDelete(false);
mais j'eu cette erreur -
Une ou plusieurs erreurs de validation ont été détectées lors de la génération de modèle:
Vantage.Data.EF.MenuItem_Parent:: conflits Multiplicité avec le contrainte référentielle dans Role 'MenuItem_Parent_Target' dans relation 'MenuItem_Parent'. Étant donné que toutes les propriétés dans le rôle dépendant sont non nullable, la multiplicité du rôle principal doit être '1'.
Toute aide appréciée.
Merci.