Миграция существующей базы данных Microsoft.AspNet.Identity (EF 6) в Microsoft.AspNetCore.Identity (EF Core) - PullRequest
0 голосов
/ 15 мая 2018

Я работаю над приложением (APS.net MVC), которое использует Microsoft.AspNet.Identity . Теперь я хочу обновить свое приложение до APS.net Core, которое использует Microsoft.AspNetCore.Identity . Но эти два имеют некоторые различия в каждой модели. Есть ли прямой способ создания начальной миграции для Microsoft.AspNetCore.Identit y связанных изменений, чтобы подключить существующую БД с удостоверением Asp.net Core?

Ответы [ 3 ]

0 голосов
/ 21 августа 2018

Мне удалось перенести существующие БД, выполнив следующие шаги:

  1. Создайте новый проект ASP.net Core и измените его ModelSnapshot в соответствии с EF6.После этого вы можете сгенерировать скрипт для изменений EF6 в EF Core.

  2. Написать скрипт для обновления таблицы AspNetUsers.В удостоверении ядра ASP.net при аутентификации используется NormalizedEmail, NormalizedUserName столбец.Поэтому нам нужно обновить эти два столбца, используя наши существующие данные.

Надеюсь, это поможет кому-то там ...

Пожалуйста, проследите за этим GitHub тема для получения дополнительной информации.

0 голосов
/ 13 сентября 2018

Я преобразовал «полную» базу данных идентификации в базовую идентификацию.Моя ситуация может не совсем подходить для вашей.Я не использую EF Migrations.Я использую только функции пользователей и ролей.Я использовал эти шаги:

  • Копирование базы данных
  • Удаление таблиц, связанных с идентификацией, И история миграции ...

    • удаление таблицы ЕСЛИ СУЩЕСТВУЕТAspNetRoleClaims
    • перетаскиваемая таблица ЕСЛИ EXISTS AspNetUserTokens
    • перетаскиваемая таблица ЕСЛИ EXISTS AspNetUserClaims
    • перетаскиваемая таблица ЕСЛИ EXPTS AspNetUserRoles
    • перетаскиваемая таблица ЕСЛИ EXISTS 10ogins ** перетаскиваемая таблица, ЕСЛИ СУЩЕСТВУЕТ AspNetUserClaims
    • перетаскиваемая таблица ЕСЛИ СУЩЕСТВУЕТ AspNetRoles
    • перетаскиваемая таблица ЕСЛИ СУЩЕСТВУЕТ AspNetUsers
    • перетаскиваемая таблица ЕСЛИ СУЩЕСТВУЕТ __EFMigrationsHistory

Разрешить запуск миграции Identity Core, создавая новые таблицы, которые предпочитает Core Identity

Копировать данные идентификации из старой базы данных

- Копировать данные пользователей

insert into AspNetUsers(Id, UserName, NormalizedUserName, Email, NormalizedEmail,
    EmailConfirmed, PasswordHash, PhoneNumberConfirmed, TwoFactorEnabled, LockoutEnabled, AccessFailedCount
    )
    select Id, UserName, UPPER(UserName), Email, UPPER(Email), 
    1, PasswordHash, 0, 0, 0, 0 from [OldDatabase].dbo.AspNetUsers

- копирование по ролям

insert into AspNetRoles(Id, [Name], NormalizedName)
     select Id, [Name], UPPER([Name]) from [OldDatabase].dbo.AspNetRoles

- копирование по пользователю / ролям

insert into AspNetUserRoles select * from [OldDatabase].dbo.AspNetUserRoles

Я не использую другие таблицы.Я оставил их пустыми.

0 голосов
/ 15 мая 2018

Здесь приведено подробное объяснение , касающееся ядра 3.0 asp.net и того, как перенести вашу базу данных в удостоверение ядра asp.net 3.0 базы данных.

Прочитайте это, и я надеюсь, что это поможет любому, кто сталкивается с этим.

...