Расширение таблицы идентификаторов с помощью столбца enum - PullRequest
0 голосов
/ 27 мая 2020

Я работаю в веб-приложении, используя ASP. Net. Я пытаюсь добавить новый столбец с типом перечисления в AspNetUsers под названием AccountStatus (Active, InActive, Expired и Locked).

Я следую руководству по «Добавление свойств для пользователей удостоверений», поэтому я сделал следующее :

В файле Register.cs html .cs я добавил строку:

public enum AccountStatus { Active,InActive,Expired,Locked}

И я создал класс ApplicationUser, унаследованный от IdentityUsers, как показано ниже:

using System;
using Microsoft.AspNetCore.Identity;
namespace RegisterTest.Models
{
    public class ApplicationUser : IdentityUser
    {
        public enum AccountStatus { Active, InActive, Expired, Locked }
    }
} 

Затем я добавил здесь DbSet:

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using RegisterTest.Models;

namespace RegisterTest.Data
{
    public class ApplicationDbContext : IdentityDbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }

        public DbSet<ApplicationUser> ApplicationUser { get; set; }

    }
}

Затем я добавил миграцию и обновил базу данных, но на самом деле я получил новое поле под названием «Дискриминатор»

Кто-нибудь может мне в этом помочь? Я не знаю, упускаю ли я какую-либо концепцию или делаю что-то не так? Мне нужно добавить AccountStatus в качестве поля перечисления в пользовательскую таблицу Identity. Приветствуется любая помощь.

1 Ответ

0 голосов
/ 27 мая 2020

Попробуйте настроить преобразование для вашего перечисления в DbContext следующим образом:

        modelBuilder
        .Entity<Wine>()
        .Property(e => e.WineVariantId)
        .HasConversion<int>();

Этот код был взят из https://entityframeworkcore.com/knowledge-base/50375357/how-to-create-a-table-corresponding-to-enum-in-ef-core-code-first-. Похоже, что настройка перечисления в первую очередь кода - это нечто большее, чем просто определение его в модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...