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)? Или возможно есть какие-то инструменты для актуализации этого файла?