Недопустимое приведение при возврате mysql LAST_INSERT_ID () с использованием dapper.net

Этот вопрос был рассмотрен для MSSQL здесь:

Как мне выполнить вставку и вернуть вставленное удостоверение с помощью Dapper?

но это решение не работает с mysql.

Чтобы преобразовать LAST_INSERT_ID () в целое число с помощью mysql, вы должны сделать следующее:

SELECT CAST (LAST_INSERT_ID () AS UNSIGNED INTEGER);

Трассировка стека:

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

Кто-нибудь решил эту проблему в MySQL?

РЕДАКТИРОВАТЬ:

Мне удалось заставить эту работу работать со следующим:

var id = connection.Query("SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);").Single();

Возможно, не идеально, но это работает.

13
задан Community 23 May 2017 в 12:02
поделиться