插入,更新或删除记录时返回记录的ID
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入,更新或删除记录时返回记录的ID相关的知识,希望对你有一定的参考价值。
当我使用Dapper插入,更新或删除实体时,我需要返回实体的id
。
我正在使用此代码:
var role = await roleConnection.ExecuteAsync("UPDATE Role SET IsDelete = @isDelete, RoleName = @roleName, SecurityStamp = @securityStamp WHERE Role.Id = @id SELECT SELECT CAST(SCOPE_IDENTITY() AS INT)"
, new
{
isDelete = request.IsDelete = false,
roleName = request.RoleName,
securityStamp = Guid.NewGuid(),
id = request.Id
});
但是它什么也没给我显示。
我该怎么做?
答案
好吧,在UPDATE
或DELETE
的情况下,您已经具有`id ^,否则您将无法调用任何这些方法-对吗?
对于INSERT
,如果您的表在SQL Server中并且具有INT IDENTITY
列,则可以使用类似以下的内容:
INSERT INTO dbo.YourTable (list-of-columns)
OUTPUT Inserted.Id -- or whatever your IDENTITY column is called
VALUES (list-of-values)
然后从您的C#代码中,使用cmd.ExecuteScalar()
(或者,如果愿意,可以使用ExecuteScalarAsync
)运行它并获取单个原子值(新创建的id
值:]]
var result = cmd.ExecuteScalar(....);
if (result != null)
{
int newId = Convert.ToInt32(result);
}
以上是关于插入,更新或删除记录时返回记录的ID的主要内容,如果未能解决你的问题,请参考以下文章
如果 mysql 数据库中的表中不存在,则更新或插入多条记录
CodeIgniter - 如果新的或更新的重复记录则插入活动记录