この質問は、MSSQLについてここで取り上げられています。
Dapperで挿入を実行して挿入されたIDを返すにはどうすればよいですか?
しかし、このソリューションはmysqlでは機能しません。
mysqlを使用してtoを整数にキャストするには、次のLAST_INSERT_ID()
ようにする必要があります。
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
MySQLでこの問題を解決した人はいますか?
編集:
私はこれを次のように機能させることができました:
var id = connection.Query<ulong>("SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);").Single();
おそらく理想的ではありませんが、機能します。