আমি কীভাবে ডাটাবেসে একটি সন্নিবেশ সম্পাদন করব এবং ড্যাপারের সাথে সন্নিবেশিত পরিচয় ফিরিয়ে দেব?
আমি এরকম কিছু চেষ্টা করেছি:
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();
তবে এটি কার্যকর হয়নি।
@ মার্ক গ্র্যাভেল উত্তর দেওয়ার জন্য ধন্যবাদ। আমি আপনার সমাধান চেষ্টা করেছি কিন্তু, এখনও একই ব্যতিক্রম ট্রেস নীচে
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)
- আবার কিছুটা কুৎসিত। আমি এই ঠিক করব।