मैं डेटाबेस में एक प्रविष्टि कैसे करूँ और डैपर के साथ सम्मिलित पहचान लौटाऊँ?
मैंने कुछ इस तरह की कोशिश की है:
string sql = "DECLARE @ID int; " +
"INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff); " +
"SELECT @ID = SCOPE_IDENTITY()";
var id = connection.Query<int>(sql, new { Stuff = mystuff}).First();
लेकिन यह काम नहीं किया।
@Marc Gravell धन्यवाद, उत्तर के लिए। मैंने आपके समाधान की कोशिश की है लेकिन, अभी भी एक ही अपवाद निशान नीचे है
System.InvalidCastException: Specified cast is not valid
at Dapper.SqlMapper.<QueryInternal>d__a`1.MoveNext() in (snip)\Dapper\SqlMapper.cs:line 610
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in (snip)\Dapper\SqlMapper.cs:line 538
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param) in (snip)\Dapper\SqlMapper.cs:line 456
numeric
, एह? शायद अपने मूल कोड का उपयोग करें औरselect @id
? (यह सिर्फ एक कलाकारों को जोड़ता है)। मैं यह सुनिश्चित करने के लिए एक नोट करूंगा कि यह भविष्य के डैपर बिल्ड में स्वचालित रूप से काम करता है। अब के लिए एक और विकल्प हैselect cast(SCOPE_IDENTITY() as int)
- फिर से, थोड़ा बदसूरत। मैं इसे ठीक कर दूंगा।