Scaffold Identity, что пользователи int вместо строки в качестве первичных ключей в .Net Core 2.1 - PullRequest
0 голосов
/ 23 мая 2019

Какой самый простой способ создать проект .Net Core 2.1 с нуля, чтобы использовать int вместо строки в качестве первичного ключа для классов ApplicationUser и ApplicationRole?

Шаги, которые я предпринял до сих пор:

  1. Создание нового веб-приложения
  2. Изменить аутентификацию для отдельных учетных записей пользователей
  3. Класс приложения для создания приложения:

    public class ApplicationUser : IdentityUser<int>

  4. Создать класс ApplicationRole:

    public class ApplicationRole : IdentityRole<int>

1 Ответ

1 голос
/ 24 мая 2019

Вы можете выполнить следующие шаги:

  1. Создание нового приложения с Individual User Accounts шаблоном аутентификации.
  2. Обновите класс ApplicationDbContext для получения из IdentityDbContext<TUser,TRole,TKey>. Укажите новый тип ключа для TKey:

    public class ApplicationDbContext
          : IdentityDbContext<IdentityUser<int>, IdentityRole<int>, int>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
    
  3. Startup.ConfigureServices необходимо обновить, чтобы использовать универсальный пользователь:

    services.AddIdentity<IdentityUser<int>, IdentityRole<int>>()
        .AddRoleManager<RoleManager<IdentityRole<int>>>()
        .AddDefaultUI()
        .AddDefaultTokenProviders()
        .AddEntityFrameworkStores<ApplicationDbContext>();
    
  4. Измените _LoginPartial.cshtml для использования универсального пользователя:

    @inject SignInManager<IdentityUser<int>> SignInManager
    @inject UserManager<IdentityUser<int>> UserManager
    
  5. Если база данных была создана до изменения PK, запустите Drop-Database (PMC) или dotnet ef database drop (.NET Core CLI), чтобы удалить ее. После подтверждения удаления базы данных удалите начальную миграцию с помощью Remove-Migration (PMC) или dotnet ef migrations remove (.NET Core CLI).

  6. Наконец, заполните базу данных: Add-Migration MigrationName и Update-Database в PMC.

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