6

Entity Framework 6, MVC5, ASP Identity 2.0.Impossibile inserire il valore NULL nella colonna "Discriminator", tabella "... AspNetUsers"; la colonna non consente null. INSERT fallisce

Sono nuovo a Entity framework e ASP Identity. Ho creato un database con l'approccio Code First, seguendo queste istruzioni: http://dotnetcodr.com/2014/07/10/introduction-to-entityframework-6-part-1-the-basics-of-code-first/ e applicandole di conseguenza al mio progetto.

I tavoli sono stati creati, tutto bene. Ma quando sto provando a registrare un nuovo utente, viene lanciata un'eccezione: "Entity Framework 6, Identità ASP. Impossibile inserire il valore NULL nella colonna" Discriminator ", tabella" ... AspNetUsers "; la colonna non consente i null. non riesce." Innescato con il metodo CreateAsync entro AccountController

Linea 153: {
Linea 154: user var = new ApplicationUser {username = model.Email, e-mail = model.Email};
Riga 155: var result = attende UserManager.CreateAsync (user, model.Password);
Linea 156: if (result.Succeeded)
Linea 157: {

io non sono nemmeno sicuro che parte del codice che ho dovuto incollare qui.

Ecco il mio DbContext:

public class BulkMailerContext : IdentityDbContext<ApplicationUser> 
{ 
    public BulkMailerContext() 
     : base("BulkMailerContext", throwIfV1Schema: false) 
    { 
    } 
    public DbSet<Email> Emails { get; set; } 
    public DbSet<SubscriptionList> SubscriptionLists { get; set; } 
    public DbSet<Recipient> Recipients { get; set; } 
} 

Ed ecco contesto identità predefinita:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("BulkMailerContext", throwIfV1Schema: false) 
    { 
    } 
    public static ApplicationDbContext Create() 
    { 
     return new ApplicationDbContext(); 
    } 
} 

non ho trovato molte informazioni su questa eccezione.

Questo post http://forums.asp.net/t/1974183.aspx?Cannot+insert+the+value+NULL+into+column+Discriminator suggerisce che il progetto ha una classe, ereditata dall'utente. Non ho niente del genere.

Questo post https://connect.microsoft.com/VisualStudio/feedback/details/800655/calling-new-user-with-4-5-1-does-not-pass-column-discriminator-required-in-aspnetusers-tables è di circa il progetto di Web API e team di Microsoft dicono che è un bug, e saranno risolvere il problema, per quanto ho capito

Questo Cannot insert the value NULL into column 'Discriminator' AspNetUsers Table non offre alcuna soluzione

questo Web API 2 cannot register user suggerisce che in Identity 2.0 questo è stato risolto, ma ho Identity 2.0 attualmente

Ho migrazioni automatiche - spente, se è importante. Ma ho aggiornato db manualmente dalla console PM con il comando update-database.

Tutti i suggerimenti sono benvenuti.

+1

l'entità del destinatario eredita da ApplicationUser? – tmg

+0

No, sono diversi. Sto costruendo un mailer di massa. ApplicationUser - è l'utente che ha effettuato l'accesso. Destinatario - è solo una tabella con indirizzi e-mail e nomi - per l'invio di massa. – Lera

+0

hai aggiunto qualche proprietà in ApplicationUser? se è così, puoi incollare anche quel codice? – tmg

risposta

1

ho corse "add-migrazione -ConfigurationTypeName ... ApplicationContextMigrations.Configuration" InitialCreate”-force "

Poi, cancellate tutte le tabelle di identità dal database.

poi corse" update-database ... ApplicationContextMigrations.Configuration "

E la colonna Discriminator è scomparsa L'utente è registrato correttamente quando eseguo l'applicazione.

Problemi correlati