首页新闻招聘找找看知识库

请教大家个问题:Dapper如何返回插入后的自增Id

0
悬赏园豆:10 [待解决问题]

Execute()方法应该是返回受影响的行数,想知道怎么获取自增的Id值。

如能给出简单示例,感激不尽。

大桶可乐的主页 大桶可乐 | 初学一级 | 园豆:3
提问于:2017-11-14 20:48
< >
分享
所有回答(3)
0

用query查询方式.或者那个返回第一行第一列的方法.

在sql中用inserted.id输出

吴瑞祥 | 园豆:24215 (高人七级) | 2017-11-14 21:15
1

在SQL,Insert语句后,跟上返回自增ID的语句。

有三种写法,这是其中两种:

Execute方式:

var sql = "INSERT INTO [MesTest] ([Msg]) VALUES('ss');SELECT @id=SCOPE_IDENTITY()";
using (var db = Database.DbService)
{
    var p = new DynamicParameters();
    p.Add("@ID", dbType: DbType.Int32, direction: ParameterDirection.Output);
    var i = db.Execute(sql,p);
    var i1 = p.Get<int>("@ID");
   
    Assert.Inconclusive(i1.ToString());
}

 Query方式

var sql = @"INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff);";
sql += "SELECT CAST(SCOPE_IDENTITY() as int)";
var mytable = new MyTable();
mytable.Stuff = "test";

var id = connection.Query<int>(sql, mytable).FirstOrDefault();

ExecuteScalar方式,就不再叙了。

 

以上的SQL语句,仅作参考,在不同数据库下,SQL语法略有差异,获取自增ID方法也各自不同。

VAllen | 园豆:90 (初学一级) | 2017-11-14 22:16
0

参考:https://www.cnblogs.com/davidwang456/p/4836327.html

金琥 | 园豆:2075 (老鸟四级) | 2017-11-15 13:17
   您需要登录以后才能回答,未注册用户请先注册