這個問題返回MySQL的LAST_INSERT_ID()時,已經覆蓋了MSSQL的位置:投無效使用dapper.net
How do I perform an insert and return inserted identity with 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
有沒有人在MySQL解決這個問題?
編輯:
我設法與以下這些工作:
var id = connection.Query<ulong>("SELECT CAST(LAST_INSERT_ID() AS UNSIGNED INTEGER);").Single();
也許並不理想,但它的工作原理。
發生同樣的問題。出於某種原因,它不會使用Dapper轉換爲int。你必須使用很長的時間,而不是將它降級到.net :(不知道它是否是連接器,MySQL或Dapper的錯誤 – Sam
剛剛得到同樣的問題,發現它也返回了ulong: ) –
你可以投入很長時間而不是ulong然後int。我發現的另一個奇怪之處在於,第(1)列也以UInt64(ulong)的形式傳遞。我懷疑是司機。 –