相关疑难解决方法(0)

使用dapper.net返回mysql LAST_INSERT_ID()时无效的强制转换

MSSQL在这里已经涵盖了这个问题:

如何使用Dapper执行插入并返回插入的标识?

但是这个解决方案不适用于mysql.

LAST_INSERT_ID()使用mysql转换为整数,您必须这样做:

SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);

堆栈跟踪是:

Dapper.<QueryInternal>d__13`1.MoveNext() in sqlMapper.cs:607
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +159
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +36
   Dapper.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in sqlMapper.cs:535
Run Code Online (Sandbox Code Playgroud)

有没有人在MySQL中解决这个问题?

编辑:

我已成功完成以下工作:

var id = connection.Query<ulong>("SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);").Single();
Run Code Online (Sandbox Code Playgroud)

也许不理想,但它的确有效.

c# mysql dapper

13
推荐指数
2
解决办法
5845
查看次数

标签 统计

c# ×1

dapper ×1

mysql ×1