EF Core Code First с идентичностью различий между миграциями на разных машинах - PullRequest
0 голосов
/ 09 апреля 2020

Мы продолжаем получать миграции, которые включают изменения в ASP. NET Таблицы идентификации на одном компьютере, но не на другом, когда разработчик собирается создать миграцию.

Мы используем:

  • EF Core 3.1.3
  • . NET Identity Core
  • Консоль диспетчера пакетов Add-Migration <Name>
  • Visual Studio 2019 16.5.2
  • dotnet ef отчеты Entity Framework Core .NET Command-line Tools 3.1.3

Мы думали, что мы исправили это в прошлый раз, когда это произошло:

  • Обновление наших основных инструментов EF до те же версии
  • Обновление Visual Studio до тех же версий
  • Удаление всех миграций
  • Создание новой начальной миграции

Но сегодня она появилась снова , На одном компьютере Add-Migration хочет внести эти изменения в таблицы Identity, а на другом нет:

migrationBuilder.AlterColumn<string>(
    name: "Name",
    table: "AspNetUserTokens",
    maxLength: 128,
    nullable: false,
    oldClrType: typeof(string),
    oldType: "nvarchar(450)");

migrationBuilder.AlterColumn<string>(
    name: "LoginProvider",
    table: "AspNetUserTokens",
    maxLength: 128,
    nullable: false,
    oldClrType: typeof(string),
    oldType: "nvarchar(450)");

migrationBuilder.AlterColumn<string>(
    name: "ProviderKey",
    table: "AspNetUserLogins",
    maxLength: 128,
    nullable: false,
    oldClrType: typeof(string),
    oldType: "nvarchar(450)");

migrationBuilder.AlterColumn<string>(
    name: "LoginProvider",
    table: "AspNetUserLogins",
    maxLength: 128,
    nullable: false,
    oldClrType: typeof(string),
    oldType: "nvarchar(450)");

1 Ответ

1 голос
/ 09 апреля 2020

Я никогда не выяснял, как или почему значение по умолчанию было различным на двух машинах, но я узнал, как переопределить его в коде. Вы можете установить MaxLengthForKeys при регистрации идентификатора в Startup.cs:

services.AddDefaultIdentity<ApplicationUser>(options => {
    options.SignIn.RequireConfirmedAccount = true;
    options.Stores.MaxLengthForKeys = 128;
})
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();

Здесь также есть обсуждение этого вопроса: https://github.com/dotnet/aspnetcore/issues/14503

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