इस सवाल का उपयोग कर MSSQL यहाँ के लिए कवर किया गया है:अमान्य कलाकार जब mysql LAST_INSERT_ID लौटने() 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();
शायद आदर्श नहीं है, लेकिन यह काम करता है।
एक ही समस्या हो रही थी। किसी कारण से यह डैपर का उपयोग करके एक int में नहीं डालेगा। । आप लंबे समय तक उपयोग करने के लिए, .net में :(को पूर्णांक में हल की तुलना में यह डाउनग्रेड अगर यह कनेक्टर के साथ एक बग है पता नहीं है है, MySQL, या साफ-सुथरी – Sam
बस एक ही मुद्दा हो गया और पता चला कि यह Ulong भी लौटे:) –
आप उलझन के बजाय लंबे समय तक कास्ट कर सकते हैं और फिर int। मुझे पता चला कि एक और अजीबता यह है कि बिट (1) कॉलम UInt64 (ulong) के रूप में भी पास किए जाते हैं। मेरा संदेह ड्राइवर है। –