type tiene the primary para ninguna identityuserrole has for este entitytype definida define defina clave entity-framework

entity framework - tiene - IdentityUserLogin<string> ''requiere que se defina un error de clave principal al agregar la migraciĆ³n



entitytype no tiene ninguna clave definida defina la clave para este entitytype (3)

El problema es que AppUser se hereda de IdentityUser y sus claves principales no se asignan en el método OnModelCreating de dbcontext.

Ya hay una publicación disponible con resolución. Visita el siguiente enlace

EntityType ''IdentityUserLogin'' no tiene una clave definida. Definir la clave para este tipo de entidad.

Espero que esto ayude.

Estoy usando 2 Dbcontexts diferentes. Quiero usar 2 bases de datos diferentes de usuarios y mycontext. Al hacer eso, me aparece un error El tipo de entidad ''Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin'' requiere que se defina una clave principal. Creo que hay algo mal con IdentityUser, por favor, sugiérame dónde puedo cambiar mi código para poder agregar la migración.

Mi clase Dbcontext:

class MyContext : DbContext { public DbSet<Post> Posts { get; set; } public DbSet<Tag> Tags { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<PostTag>() .HasKey(t => new { t.PostId, t.TagId }); modelBuilder.Entity<PostTag>() .HasOne(pt => pt.Post) .WithMany(p => p.PostTags) .HasForeignKey(pt => pt.PostId); modelBuilder.Entity<PostTag>() .HasOne(pt => pt.Tag) .WithMany(t => t.PostTags) .HasForeignKey(pt => pt.TagId); } } public class Post { public int PostId { get; set; } public string Title { get; set; } public AppUser User {get; set;} public string Content { get; set; } public List<PostTag> PostTags { get; set; } } public class Tag { public string TagId { get; set; } public List<PostTag> PostTags { get; set; } } public class PostTag { public int PostId { get; set; } public Post Post { get; set; } public string TagId { get; set; } public Tag Tag { get; set; } }

y clase AppUser:

public class AppUser : IdentityUser { //some other propeties }

cuando intento agregar migración, se produce el siguiente error.

The entity type ''Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin<string>'' requires a primary key to be defined.

Dame una solución para resolver el problema ...


Este problema comenzará a aparecer tan pronto como escribas las siguientes líneas en DBContext sin agregar ''base.OnModelCreating(modelBuilder);''

protected override void OnModelCreating(ModelBuilder modelBuilder) { }

Dos soluciones:

1) No OnModelCreating en DbContext Until it becomes necessary

2) Anular pero llamar a base.OnModelCreating(modelBuilder)


Para reducir el enlace a una cáscara de nuez, intente esto:

protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ...

Vea el enlace de arriba para más.