MySQL + Dapper 扩展:SQL 语法错误

MySQL + Dapper Extensions: Error in SQL syntax

我正在尝试使用 Dapper Extensions 进行 CRUD 操作。但是我在将数据插入 MySQL 数据库时出错,如下所示:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near [......] at line [....]

如果我使用 MSSQL 数据库,Dapper Extensions 工作正常。为什么 MySQL?

会出现此错误

错误是因为 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,许多支持为多个 RDBMS 生成查询的 ORM 也需要类似的扩展。

除此之外,您还可以考虑实施日志记录,这可能有助于您诊断问题。 MiniProfiler is good tool for this purpose. You may find more details in my 回答。