Utilisateur dans le type d’entité MVC5 EF6

J’ai créé une classe dans MVC5, où je veux un propriétaire principal du contenu et puis je veux avoir des éditeurs pour le contenu:

public class Content { public int ID { get; set; } public IdentityUser Owner { get; set; } public ICollection Editors { get; set; } public ssortingng Title{ get; set; } public ssortingng Body { get; set; } } 

Dans le contexte de la firebase database, j’ai le code suivant:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .HasOptional(c => c.Editors) .WithRequired() .WillCascadeOnDelete(); modelBuilder.Entity() .HasRequired(c => c.Owner) .WithOptional() .WillCascadeOnDelete(); } 

Je m’attendrais à ce que Microsoft ait implémenté l’object IdentityUser de telle manière qu’il puisse être utilisé dans d’autres types d’entités, donc je suis probablement en train de faire quelque chose de mal car lorsque j’essaie de créer un contrôleur pour le type d’entité Content, erreur suivante:

 EntityType 'IdentityUserLogin' has no key defined EntityType 'IdentityUserRole' has no key defined EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no key defined EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no key defined 

J’ai également essayé d’append le code suivant à l’ ApplicationDbContext comme décrit dans cette question Tables de cartes utilisant l’api courant dans asp.net MVC5 EF6? :

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity().HasKey(l => l.UserId); modelBuilder.Entity().HasKey(r => r.Id); modelBuilder.Entity().HasKey(r => new { r.RoleId, r.UserId }); } 

Je dois faire quelque chose de mal. S’il vous plaît dites-moi comment je peux gérer les utilisateurs dans mon Content EntityType.

La méthode suivante, OnModelCreating , créera un contexte de travail. Je ne sais pas si c’est le mappage que vous voulez bien.

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity() .HasMany(c => c.Editors) .WithOptional() .WillCascadeOnDelete(false); modelBuilder.Entity() .HasRequired(c => c.Owner) .WithOptional() .WillCascadeOnDelete(false); modelBuilder.Entity().HasKey(l => l.UserId); modelBuilder.Entity().HasKey(r => r.Id); modelBuilder.Entity().HasKey(r => new { r.RoleId, r.UserId }); } 

J’ai eu le même problème et j’ai trouvé que je n’avais pas appelé

  base.OnModelCreating(modelBuilder); 

dans mon DbModel