MySQL + Dapper Extensions: ошибка в синтаксисе SQL - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь выполнять операции CRUD с помощью Dapper Extensions. Но я получаю сообщение об ошибке при вставке данных в базу данных MySQL следующим образом:

Ошибка: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с [......] в строке [....]

Если я использую базу данных MSSQL, Dapper Extensions работает правильно. Почему я получаю эту ошибку с MySQL?

1 Ответ

0 голосов
/ 27 октября 2018

Ошибка в том, что Dapper Extensions генерирует запрос для SQL-сервера (по умолчанию), когда вы фактически подключены к MySQL.Есть синтаксические различия между этими двумя RDBMS и, следовательно, ошибка.Вы должны сообщить Dapper Extensions, что вы подключаетесь к MySQL.

Установите диалект при запуске вашего приложения где-то.

//Synchronous
DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.MySqlDialect();

//Asynchronous
DapperExtensions.DapperAsyncExtensions.SqlDialect = new DapperExtensions.Sql.MySqlDialect();

Как вы можете заметить, вам нужно настроить это отдельнодля синхронных и асинхронных методов.Вы можете прочитать больше об этом на github .

. Это даст указание Dapper Extensions генерировать запросы в соответствии с синтаксисом MySql.Не только Dapper Extensions, подобное необходимо для многих ORM, которые поддерживают генерацию запросов для нескольких RDBMS.

Помимо этого, вы можете также рассмотреть возможность ведения журналов, которые могут помочь вам диагностировать проблемы. MiniProfiler - хороший инструмент для этой цели.Вы можете найти более подробную информацию в моем другом ответе.

...