Entity Framework Core. Рассинхрон между миграцией и ContextModelSnapshot

В качестве СУБД я использую MySql. Я создал модель User, в которой содержится такой код:

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Email { get; set; }

    public List<Role> Roles { get; set; }
} // User.

Запустил команду dotnet ef add migrations add UserMigration

Создалась такая миграция, в которой содержится такой код:

migrationBuilder.CreateTable(
                name: "Users",
                columns: table => new
                {
                    Id = table.Column<int>(type: "int", nullable: false)
                        .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
                    Username = table.Column<string>(type: "longtext", nullable: false)
                        .Annotation("MySql:CharSet", "utf8mb4"),
                    Email = table.Column<string>(type: "longtext", nullable: false) // Тут указан тип longtext!
                        .Annotation("MySql:CharSet", "utf8mb4")
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_Users", x => x.Id);
                })
                .Annotation("MySql:CharSet", "utf8mb4");

Entity Framework сгенерировал тип longtext для Email и Username, но мне нужен varchar(255). В итоге я собственноручно заменил longtext в файле миграции и в файле дизайнера, который идёт вместе с миграцией. Также сгенерировался файл ContextModelSnapshot, в котором также для этих полей содержится longtext. Стоит ли руками менять файл Snapshot, чтобы изменить тип longtext на varchar(255)? Или возможно есть какие-то инструменты для актуализации этого файла?


Ответы (0 шт):