¿Cómo puedo asignar tablas usando API fluida en ASP.NET MVC 5, Entity Framework 6?

asp.net-identity asp.net-mvc-5 c# entity-framework entity-framework-6

Pregunta

Estoy tratando de crear una relación de uno a uno usando C # en Entity Framework 6 usando ASP.NET MVC 5 con autenticación de usuario integrada.

Soy capaz de hacer tablas y conexiones con los valores predeterminados que crea Entity Framework. Pero cuando trato de usar la API fluida ... más específicamente cuando uso el modelo de creación, incluso la migración de mi base de datos vacía con la consola del administrador de paquetes fallará. ¿Cómo puedo mapear mi relación uno a uno?

Mi error:

//error
//my.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined.   //Define the key for this EntityType.
//my.Models.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. //Define the key for this EntityType.
//IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type    //'IdentityUserLogin' that has no keys defined.
//IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type //'IdentityUserRole' that has no keys defined.

Mi código:

//error
//my.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined.   //Define the key for this EntityType.
//my.Models.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. //Define the key for this EntityType.
//IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type    //'IdentityUserLogin' that has no keys defined.
//IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type //'IdentityUserRole' that has no keys defined.

Respuesta aceptada

Los errores se producen porque las tablas de identidad derivadas se asignan en el contexto derivado. Esto debe llamarse dentro de la nueva función de reemplazo OnModelCreating. Para hacer esto, simplemente agregue base.OnModelCreating (modelBuilder) a su método como se ve a continuación.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{   
    base.OnModelCreating(modelBuilder); // <-- This is the important part!
    modelBuilder.Configurations.Add(new EngineeringDesignMap());
    modelBuilder.Configurations.Add(new EngineeringProjectMap());
}

Respuesta popular

Parece que le falta una llamada a base.OnModelCreating en su DbContext.




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é