El tipo de entidad &#39;Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin <string> &#39;requiere una clave para ser definido

asp.net-identity asp.net-mvc c# entity-framework-core

Pregunta

Tengo una aplicación MVC ASP.NET5 utilizando EF7. Funciona bien hasta ahora y puedo agregar migraciones y datos persistentes en la base de datos. Ahora, después de agregar Identidad a mi proyecto de capa de datos, aparece este error al intentar agregar una nueva migración:

El tipo de entidad 'Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin' requiere que se defina una clave

Mi contexto se deriva de IdentityDbContext:

public class ASSWebApiContext : IdentityDbContext<AppUser>

la clase AppUser:

public class ASSWebApiContext : IdentityDbContext<AppUser>

proyecto.json

public class ASSWebApiContext : IdentityDbContext<AppUser>

Todo lo que he hecho aquí es cargar el nuevo paquete relevante: "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", agregó la clase AppUser - nada más. Tuve un proyecto similar utilizando beta-8 usando el mismo patrón exacto donde funcionó sin problemas. ¿Hay algún cambio relevante entre beta-8 y rc-1?

¡Gracias!

A continuación es parte del ASSWebApiContext. Hay un modelBuilder.Entity para la mayoría de las entidades que tienen un DbSet. Así que el archivo continúa durante bastante tiempo ...

public class ASSWebApiContext : IdentityDbContext<AppUser>

Respuesta aceptada

Básicamente, las claves de las tablas de Identidad se asignan en el método OnModelCreating de IdentityDbContext y si no se llama a este método, terminará recibiendo el error que recibió. Este método no se llama si deriva de IdentityDbContext y proporciona su propia definición de OnModelCreating como lo hizo en su código. Con esta configuración, tiene que llamar explícitamente al método OnModelCreating de IdentityDbContext usando la declaración base.OnModelCreating . Esta respuesta también discute la opción que publiqué aquí.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué