Il tipo di entità &quot;Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin <string> &#39;richiede una chiave da definire

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

Domanda

Ho un'applicazione ASP.NET5 MVC che utilizza EF7. Funziona tutto bene finora e sono in grado di aggiungere migrazioni e mantenere i dati nel database. Ora dopo aver aggiunto Identity al mio progetto del livello dati, visualizzo questo errore quando provo ad aggiungere una nuova migrazione:

Il tipo di entità "Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin" richiede una chiave da definire

Il mio contesto è derivato da IdentityDbContext:

public class ASSWebApiContext : IdentityDbContext<AppUser>

la classe AppUser:

public class ASSWebApiContext : IdentityDbContext<AppUser>

project.json

public class ASSWebApiContext : IdentityDbContext<AppUser>

Tutto quello che ho fatto qui è di caricare il nuovo pacchetto rilevante: "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", ha aggiunto la classe AppUser - nient'altro. Ho avuto un progetto simile usando la beta-8 usando lo stesso identico schema in cui ha funzionato senza problemi. Ci sono cambiamenti rilevanti tra beta-8 e rc-1?

Grazie!

Di seguito è riportata la parte di ASSWebApiContext. Esiste un modelBuilder.Entity per la maggior parte delle entità che dispongono di un DbSet. Quindi il file va avanti per un po '...

public class ASSWebApiContext : IdentityDbContext<AppUser>

Risposta accettata

Fondamentalmente le chiavi delle tabelle Identity sono mappate nel metodo OnModelCreating di IdentityDbContext e se questo metodo non viene chiamato, OnModelCreating per ricevere l'errore che hai ottenuto. Questo metodo non viene chiamato se si deriva da IdentityDbContext e si fornisce la propria definizione di OnModelCreating come nel codice. Con questa configurazione devi chiamare esplicitamente il metodo OnModelCreating di IdentityDbContext usando base.OnModelCreating istruzione base.OnModelCreating . Questa risposta discute anche l'opzione che ho postato qui




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché