#sql #asp.net #asp.net-core
#sql #asp.net #asp.net-core
Вопрос:
У меня есть проект .Net Core с подходом, основанным на коде.
Вот мои миграции, в которых я заполняю таблицу перечислениями
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(
$"INSERT INTO ValidationStatuses(Id,Name) VALUES({(int) ValidationStatusEnum.ValidationRequired},{ValidationStatusEnum.ValidationRequired})");
migrationBuilder.Sql(
$"INSERT INTO ValidationStatuses(Id,Name) VALUES({(int) ValidationStatusEnum.Validated},{ValidationStatusEnum.Validated})");
migrationBuilder.Sql(
$"INSERT INTO TenantTypes(Id,Name) VALUES({(int) TenantTypeEnum.Agency},{TenantTypeEnum.Agency}");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(
"DELETE FROM ValidationStatuses");
migrationBuilder.Sql(
"DELETE FROM TenantTypes ");
}
Когда я пытаюсь запустить его, у меня это
Неизвестный столбец ‘ValidationRequired’ в ‘списке полей’
Как я могу это исправить?
Ответ №1:
Вам не хватает кавычек, чтобы сообщить MySQL, что это строковое значение, а не cloumn.
$"INSERT INTO ValidationStatuses(Id,Name) VALUES('{(int) ValidationStatusEnum.ValidationRequired}','{ValidationStatusEnum.ValidationRequired})'");
Возможно, вам потребуется заменить одиночные кавычки, которые я добавил, двойными кавычками в MySQL.