9

mio progetto: VS2013, Entity Framework, moduli Web, database di prima, Identitàeccezione dopo l'aggiornamento ASP.NET Identità a 2,0

ho aggiornato tutti i pacchetti Nuget del mio progetto oggi (2014/04/15). Tra questi, Identity è aggiornato a 2.0.0.0.

Ho pensato che le cose andassero bene, ma sfortunatamente quando eseguo l'applicazione, la seguente dichiarazione fornisce un'eccezione.

namespace xxx.Models 
{ 
    // You can add User data for the user by adding more properties to your User class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. 
    public class ApplicationUser : IdentityUser 
    { 
    } 

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     public ApplicationDbContext() 
      : base("MyConnection") 
     { 
     } 
    } 
... 
} 

Le informazioni di eccezione sono le seguenti. Mi chiede di eseguire la migrazione prima del codice. Ma il mio progetto è un progetto Webforms First Database. Come posso risolvere questo problema? Grazie!


Un'eccezione di tipo 'System.InvalidOperationException' in Microsoft.AspNet.Identity.EntityFramework.dll, ma non è stata gestita nel codice utente

Ulteriori informazioni: Il modello di sostegno del contesto 'ApplicationDbContext' ha cambiato da quando il database è stato creato. Questo potrebbe essere successo perché il modello utilizzato da ASP.NET Identity Framework è cambiato o il modello utilizzato nella tua applicazione è cambiato. Per risolvere questo problema, è necessario aggiornare il database. Considerare l'utilizzo di Code First Migrations per aggiornare il database (http://go.microsoft.com/fwlink/?LinkId=301867).
Prima di aggiornare il database utilizzando Code First Migrations, disabilitare la verifica della coerenza dello schema per l'identità ASP.NET impostando throwIfV1Schema = false nel costruttore di ApplicationDbContext nell'applicazione. pubblico ApplicationDbContext(): base ("ApplicationServices", throwIfV1Schema: falsi)

risposta

15

È necessario disabilitare la coerenza dello schema facendo ciò che l'errore dice. Questa è una cosa che accade una volta quando si aggiorna dalla versione 1.0 alla 2.0.

public ApplicationDbContext() : base("MyConnection", throwIfV1Schema:false) 

Passaggio successivo: eseguire le migrazioni.

Tutto dovrebbe funzionare dopo che e si può rimuovere questo throwIfV1Schema:false

Si può anche dare un'occhiata a this per ulteriori informazioni

+1

Grazie mille! Funziona !! – martial

+0

Ho provato questo, ma ha semplicemente spostato l'errore più in basso lungo la strada. – Craig

0

Il problema è qui:

public class ApplicationUser : IdentityUser 
{ 
} 

Penso che si dovrebbe cambiare per partial classe di estendere entità in Entity Framework. Il motivo è che EF genererà una classe proxy per ogni entità da connettere al database.

La classe partial deve essere scritta nello stesso spazio dei nomi.

+0

Grazie per il suggerimento. Ho provato ma non funziona. – martial

Problemi correlati