Неизвестный столбец ‘ValidationRequired’ в ‘списке полей’ MySQL

#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.