EntityFrameworkCore генерирует пустые миграции - PullRequest
1 голос
/ 08 мая 2020

Я использую подход EFCore 3 «сначала код» с миграциями. Создал новую базу данных в MySQL 5.7 и применил старые миграции, используя dotnet ef database update. Все таблицы созданы и в __EFMigrationsHistory есть записи. Затем я добавил [MaxLength(2000)] в поле RepairHistory.comment.

Перед созданием миграции ContextModelSnapshot содержит следующее определение:

b.Property<string>("Comment")
    .HasColumnName("comment")
    .HasColumnType("varchar(1000)")
    .HasAnnotation("MySql:CharSet", "utf8")
    .HasAnnotation("MySql:Collation", "utf8_unicode_ci");

Ожидаемое поведение:

Вызов dotnet ef migrations add ExtendComment создаст файлы миграции с изменением типа столбца на "varchar(2000)", ContextModelSnapshot изменит строку .HasColumnType("varchar(1000)") на .HasColumnType("varchar(2000)").

Реальное поведение:

Вызов dotnet ef migrations add ExtendComment создает пустые файлы миграции. ContextModelSnapshot изменяет определение поля неверно, вместо изменения типа столбца добавлено HasMaxLength, что больше размера типа столбца.

b.Property<string>("Comment")
    .HasColumnName("comment")
    .HasColumnType("varchar(1000)")
    .HasMaxLength(2000)
    .HasAnnotation("MySql:CharSet", "utf8")
    .HasAnnotation("MySql:Collation", "utf8_unicode_ci");

Что я сделал не так?

...