gpt4 book ai didi

sql-server - 使用 Dapper Dot Net 获取最后插入的 ID

转载 作者:行者123 更新时间:2023-12-02 03:22:57 30 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I perform an insert and return inserted identity with Dapper?

(9 个回答)


6年前关闭。




我正在使用 适用于 Web 的 Microsoft Visual Studio Express 2012 开发MVC5应用程序。我想通过使用 Dapper dot net 获取最后插入的 ID。我在这里得到了解决方案,但他们正在使用 SQL Server 2012 (Management Studio),但是当我在代码中运行查询时,返回值是错误的。这是我已经尝试过获取最后插入的 ID 的代码片段

SqlConnection _db = new SqlConnection("String");

string query_1 = @"DECLARE @InsertedRows AS TABLE (user_id int);Insert into users (stuff) OUTPUT Inserted.user_id INTO @InsertedRows values(@stuff); SELECT user_id FROM @InsertedRows";
string query_2 = @"Insert into users (stuff) OUTPUT Inserted.user_id values(@stuff);";
string query_3 = @"Insert into users (stuff) values(@stuff); SELECT SCOPE_IDENTITY()";

1. var id = _db.Query<int>(query_x, new { stuff = @stuff });
2. var id = _db.Execute(query_x, new { stuff = @stuff });

但是这两种情况下 ID 的值都是 1 但不是实际结果。但是当我在 SQL management Studio 上运行相同的查询时,一切正常。请帮助解决这个问题。

最佳答案

好的,我要回答我自己提出的问题,我在 Dapper 中进行了一些其他搜索后得到了答案,我们有一个扩展方法 .Single()这将返回新添加的 Selectd 值的值,即

var id = _db.Query<int>(query_x, new { stuff = @stuff }).Single();

在我的情况下,它将返回新添加的主键值的值。我只是添加 .Single()功能来获得新的附加值。

关于sql-server - 使用 Dapper Dot Net 获取最后插入的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029049/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com