gpt4 book ai didi

c# - 通过 uniqueidentifier 选择后使用 dapper 更新多条记录

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:35 33 4
gpt4 key购买 nike

我有一些从数据库中加载的记录,我想在返回它们之前更新设置的一对值。唯一的主要要求是我不希望多个命令一条一条地更新每条记录。

请注意我的 id 是 GUID(uniqueidentifier)

到目前为止我的代码是

public IEnumerable<Person> GetUnprocessedPeople(int batchSize)
{
List<Queue_ImportQueue> list;
using (IDbConnection db = OpenedConnection)
{
string peopleList = $"SELECT TOP({batchSize}) * FROM [dbo].[Person]";

list = db.Query<Person>(peopleList).ToList();
using (IDbTransaction transactionScope = db.BeginTransaction(IsolationLevel.Serializable))
{
string updateQuery = $"UPDATE [dbo].[Person] SET Created = GETDATE() WHERE Id ='@ids'";

try
{
db.Execute(updateQuery, new { Id = list.Select(x => x.Id) }, transactionScope);
transactionScope.Commit();
}
catch (Exception ex)
{
transactionScope.Rollback();
throw;
}
}
}
return list;
}

最佳答案

好的,解决方案非常简单。不需要特定的类型转换。只需确保所有论点都正确即可。所以提取已经为我修复了查询:

            string updateQuery = $"UPDATE [dbo].[Person] SET Created = GETDATE() WHERE Id ='@Ids'";

...

db.Execute(updateQuery, new { Ids = list.Select(x => x.Id) }, transactionScope);

关于c# - 通过 uniqueidentifier 选择后使用 dapper 更新多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846689/

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