6

Entity Framework 6, MVC5, ASP Identity 2.0.Невозможно вставить значение NULL в столбец «Дискриминатор», таблица «... AspNetUsers»; столбец не допускает нулей. INSERT не работает

Я новичок в инфраструктуре Entity и ASP Identity. Я создал базу данных с использованием кода First, следуя этим инструкциям: http://dotnetcodr.com/2014/07/10/introduction-to-entityframework-6-part-1-the-basics-of-code-first/ и применяя их в соответствии с моим собственным проектом.

Таблицы были созданы, все в порядке. Но когда я пытаюсь зарегистрировать нового пользователя, возникает исключение: «Entity Framework 6, ASP Identity. Невозможно вставить значение NULL в столбец« Дискриминатор », таблица« ... AspNetUsers », столбец не допускает нулей. INSERT не может «. Вызывается методом CreateAsync в пределах AccountController

линии 153: {
Строка 154: вар пользователь = новый ApplicationUser {UserName = model.Email, электронная почта = model.Email};
Строка 155: var result = wait UserManager.CreateAsync (пользователь, model.Password);
Line 156: если (result.Succeeded)
линии 157: {

Я даже не уверен, какая часть кода я должен вставить здесь.

Вот мой 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; } 
} 

А вот по умолчанию контекст Идентичность:

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

Я не нашел много информации об этом исключением.

Этот пост http://forums.asp.net/t/1974183.aspx?Cannot+insert+the+value+NULL+into+column+Discriminator предлагает, чтобы проект имел класс, наследуемый от пользователя. У меня нет ничего подобного.

Это сообщение https://connect.microsoft.com/VisualStudio/feedback/details/800655/calling-new-user-with-4-5-1-does-not-pass-column-discriminator-required-in-aspnetusers-tables о проекте API Web и команды Microsoft сказал, что это ошибка, и они будут исправить это, насколько я понял

Это один Cannot insert the value NULL into column 'Discriminator' AspNetUsers Table не предлагает никакого решения

Это один Web API 2 cannot register user предполагает, что в Идентичность 2.0 это было исправлено, но у меня есть Идентичность 2,0 в настоящее время

У меня автоматическая миграция - отключена, если это имеет значение. Но я обновил db вручную из консоли PM с помощью команды update-database.

Любые предложения вообще приветствуются.

+1

Ваш объект-получатель наследуется от ApplicationUser? – tmg

+0

Нет, они разные. Я строю массовую рассылку. ApplicationUser - зарегистрированный пользователь. Получатель - это всего лишь таблица с адресами электронной почты и именами - для массовой рассылки. – Lera

+0

Вы добавили какое-либо свойство в ApplicationUser? если да, можете ли вы вставить этот код тоже? – tmg

ответ

1

я побежал "добавить миграцию -ConfigurationTypeName ... ApplicationContextMigrations.Configuration" InitialCreate»-force "

Затем удаляются все таблицы из базы данных, удостоверяющих личность.

Затем побежал" обновление-базы данных ... ApplicationContextMigrations.Configuration "

И столбец Дискриминатора исчез. Пользователь зарегистрирован успешно, когда я запускаю приложение.

Смежные вопросы

 Смежные вопросы