gpt4 book ai didi

c# - 批量更新数据库的最快方法?

转载 作者:行者123 更新时间:2023-12-02 22:28:41 25 4
gpt4 key购买 nike

所以我在程序的某个部分同时更改了很多条目。现在每个代码看起来像这样:

foreach(newentry)
{
oldentry = context.Users.Find(entry.userid);
newentry.oldvalue = newvalue;
context.Entry(oldentry).CurrentValues.SetValues(newentry);
}
context.SaveChanges();

但是,这最终会查询数据库 300 多次并且会降低我的性能。我想到的唯一方法是预加载数据库,但我认为这也不是最好的方法。

var userlist = context.Users.ToList();
foreach(newentry in userlist)
{
var original = entry;
entry.originalvalue = newvalue;
context.Entry(original).CurrentValues.SetValues(newentry);
}
context.SaveChanges();

我仍在访问数据库 300 多次,不是吗?你会推荐什么?

最佳答案

我会直接使用 ADO 来做到这一点。我将获得用户 ID 列表,然后使用表值参数进行批量更新。

这是来自 this 的示例MSDN 文章:

UPDATE dbo.Categories
SET Categories.CategoryName = ec.CategoryName
FROM dbo.Categories INNER JOIN @tvpEditedCategories AS ec
ON dbo.Categories.CategoryID = ec.CategoryID;

关于c# - 批量更新数据库的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591219/

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