ПРОЦЕДУРА УДАЛЕНИЯ .Net Core 8 Entity Framework (MySQL), ЕСЛИ СУЩЕСТВУЕТ `MYSQL_BEFORE_DROP_PRIMARY_KEY` ОшибкаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ПРОЦЕДУРА УДАЛЕНИЯ .Net Core 8 Entity Framework (MySQL), ЕСЛИ СУЩЕСТВУЕТ `MYSQL_BEFORE_DROP_PRIMARY_KEY` Ошибка

Сообщение Anonymous »

Я создал миграцию, чтобы добавить несколько таблиц и обновить одну таблицу (добавить один столбец). База данных — MySQL 8.0.31, а поставщик EF — MySql.EntityFrameworkCore от Oracle.
Миграция завершилась успешно, но когда я запускаю обновление базы данных dotnet ef, я получаю эту ошибку, которая Не могу найти в Интернете.
Для контекста: это совершенно новый проект, в котором было всего две предыдущие миграции.
Ошибка:

Код: Выделить всё

fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (8ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
DROP PROCEDURE IF EXISTS `MYSQL_BEFORE_DROP_PRIMARY_KEY`;
CREATE PROCEDURE `MYSQL_BEFORE_DROP_PRIMARY_KEY`(IN `SCHEMA_NAME_ARGUMENT` VARCHAR(255), IN `TABLE_NAME_ARGUMENT` VARCHAR(255))
BEGIN
DECLARE HAS_AUTO_INCREMENT_ID TINYINT(1);
DECLARE PRIMARY_KEY_COLUMN_NAME VARCHAR(255);
DECLARE PRIMARY_KEY_TYPE VARCHAR(255);
DECLARE SQL_EXP VARCHAR(1000);
SELECT COUNT(*)
INTO HAS_AUTO_INCREMENT_ID
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_SCHEMA` = (SELECT IFNULL(SCHEMA_NAME_ARGUMENT, SCHEMA()))
AND `TABLE_NAME` = TABLE_NAME_ARGUMENT
AND `Extra` = 'auto_increment'
AND `COLUMN_KEY` = 'PRI'
LIMIT 1;
IF HAS_AUTO_INCREMENT_ID THEN
SELECT `COLUMN_TYPE`
INTO PRIMARY_KEY_TYPE
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_SCHEMA` = (SELECT IFNULL(SCHEMA_NAME_ARGUMENT, SCHEMA()))
AND `TABLE_NAME` = TABLE_NAME_ARGUMENT
AND `COLUMN_KEY` = 'PRI'
LIMIT 1;
SELECT `COLUMN_NAME`
INTO PRIMARY_KEY_COLUMN_NAME
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_SCHEMA` = (SELECT IFNULL(SCHEMA_NAME_ARGUMENT, SCHEMA()))
AND `TABLE_NAME` = TABLE_NAME_ARGUMENT
AND `COLUMN_KEY` = 'PRI'
LIMIT 1;
SET SQL_EXP = CONCAT('ALTER TABLE `', (SELECT IFNULL(SCHEMA_NAME_ARGUMENT, SCHEMA())), '`.`', TABLE_NAME_ARGUMENT, '` MODIFY COLUMN `', PRIMARY_KEY_COLUMN_NAME, '` ', PRIMARY_KEY_TYPE, ' NOT NULL;');
SET @SQL_EXP = SQL_EXP;
PREPARE SQL_EXP_EXECUTE FROM @SQL_EXP;
EXECUTE SQL_EXP_EXECUTE;
DEALLOCATE PREPARE SQL_EXP_EXECUTE;
END IF;
END;
Failed executing DbCommand (8ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution.
--->  MySql.Data.MySqlClient.MySqlException (0x80004005): Parameter '@SQL_EXP' must be defined.
at MySql.Data.MySqlClient.Statement.SerializeParameterAsync(MySqlParameterCollection parameters, MySqlPacket packet, String parmName, Int32 parameterIndex, Boolean execAsync)
at MySql.Data.MySqlClient.Statement.InternalBindParametersAsync(String sql, MySqlParameterCollection parameters, MySqlPacket packet, Boolean execAsync)
at MySql.Data.MySqlClient.Statement.BindParametersAsync(Boolean execAsync)
at MySql.Data.MySqlClient.Statement.ExecuteAsync(Boolean execAsync)
at MySql.Data.MySqlClient.PreparableStatement.ExecuteAsync(Boolean execAsync)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean execAsync, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean execAsync, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, Boolean execAsync, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQueryAsync(Boolean execAsync, CancellationToken cancellationToken)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Fatal error encountered during command execution.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/787 ... efore-drop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ПРОЦЕДУРА УДАЛЕНИЯ .Net Core 8 Entity Framework (MySQL), ЕСЛИ СУЩЕСТВУЕТ `MYSQL_BEFORE_DROP_PRIMARY_KEY` Ошибка
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • ПРОЦЕДУРА УДАЛЕНИЯ .Net Core 8 Entity Framework (MySQL), ЕСЛИ СУЩЕСТВУЕТ `MYSQL_BEFORE_DROP_PRIMARY_KEY` Ошибка
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • EF Core Primary Key не распознается с использованием Fluent API
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • EF Core Primary Key не распознается с использованием Fluent API
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • EF Core Primary Key не распознается с использованием Fluent API
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»