6

Entity Framework 6, MVC5, ASP Identity 2.0.Nie można wstawić wartości NULL do kolumny "Discriminator", tabela "... AspNetUsers"; kolumna nie zezwala na wartości null. INSERT kończy się niepowodzeniem.

Jestem nowy w strukturze Entity i ASP Identity. Utworzyłem bazę danych z podejściem Code First, wykonując następujące instrukcje: http://dotnetcodr.com/2014/07/10/introduction-to-entityframework-6-part-1-the-basics-of-code-first/ i stosując je odpowiednio do mojego własnego projektu.

Stoły zostały utworzone, wszystko w porządku. Ale gdy próbuję zarejestrować nowego użytkownika, generowany jest wyjątek: "Entity Framework 6, ASP Identity. Nie można wstawić wartości NULL do kolumny" Discriminator ", tabela" ... AspNetUsers ", kolumna nie zezwala na wartości null. zawiedzie. " wyzwalane metodą CreateAsync ciągu AccountController

linii 153: {
Linia 154 var user = nowy ApplicationUser {username = model.Email, E = model.Email};
Linia 155: var result = oczekuje na UserManager.CreateAsync (user, model.Password);
Linia 156: if (result.Succeeded)
Linia 157: {

Nie jestem nawet pewien, która część kodu należy wkleić tutaj.

Oto moja 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; } 
} 

I tu jest domyślny kontekst Tożsamość:

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

nie znalazłem wiele informacji na temat tego wyjątku.

Ten wpis http://forums.asp.net/t/1974183.aspx?Cannot+insert+the+value+NULL+into+column+Discriminator sugeruje, że projekt ma klasę dziedziczącą po User. Nie mam czegoś takiego.

Ten 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 jest o projekcie API Web i zespołu Microsoft powiedział, że to błąd, a oni go naprawić, o ile mam go

Ten Cannot insert the value NULL into column 'Discriminator' AspNetUsers Table nie oferuje żadnego rozwiązania

Ten Web API 2 cannot register user sugeruje, że w Identity 2.0 zostało to ustalone, ale mam Identity 2.0 obecnie

Mam automatyczne migracje - wyłączone, jeśli to ma znaczenie. Ale zaktualizowałem bazę danych ręcznie z konsoli PM za pomocą komendy update-database.

Wszelkie sugestie w ogóle są mile widziane.

+1

Twoja encja odbiorcy dziedziczy z ApplicationUser? – tmg

+0

Nie, są różne. Buduję masowy program pocztowy. ApplicationUser - jest zalogowanym użytkownikiem. Odbiorca - to tylko tabela z adresami e-mail i nazwami - do masowej wysyłki. – Lera

+0

czy dodałeś jakąś właściwość w ApplicationUser? jeśli tak, czy możesz też wkleić ten kod? – tmg

Odpowiedz

1

wpadłem "dodatek migrację -ConfigurationTypeName ... ApplicationContextMigrations.Configuration" InitialCreate”-force "

Następnie usunięte wszystkie tabele z bazy danych tożsamości.

Następnie prowadził" update-bazy danych ... ApplicationContextMigrations.Configuration "

Zniknęła kolumna Discriminator, a użytkownik został zarejestrowany pomyślnie po uruchomieniu aplikacji.