gpt4 book ai didi

asp.net-core - NET Core 的 Dapper : Insert into a table and return id of inserted row

转载 作者:行者123 更新时间:2023-12-03 18:17:24 25 4
gpt4 key购买 nike

我的存储库中有以下方法。到目前为止,我相信返回的 int 只是一个指示操作是否成功的整数。我希望 int 是成功执行后要返回的 id(这是表的单列)。我如何做到这一点?

    public async Task<int> AddNewGroup()
{
using(_connection)
{
_connection.Open();
var id = await _connection.ExecuteAsync("INSERT INTO groups").Single();
}
}

最佳答案

您可以运行包含 2 个部分的查询,第一个是您的 INSERT 部分,第二个是 SELECT 部分。在 SELECT 部分,您可以返回(选择)您想要的任何列值。

例如,如果您的组表有一个名为 GroupId 的主键列,并且您已将该列设置为标识值生成(自动值生成),则可以调用 SCOPE_IDENTITY() 来获取生成的值。

我们将使用QueryAsync方法。

public async Task<int> AddNewGroup()
{
using(_connection)
{
_connection.Open();
var q = @"INSERT INTO Groups(Name,Description) VALUES
(@name, @desc); SELECT CAST(SCOPE_IDENTITY() as int)"
var result = await _connection.QueryAsync<int>(q,
new { @name="some name", @desc="some desc"});
return result.Single();
}
}

关于asp.net-core - NET Core 的 Dapper : Insert into a table and return id of inserted row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650985/

25 4 0