gpt4 book ai didi

c# - 出于性能考虑更新 N 行

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:58 25 4
gpt4 key购买 nike

我有一个包含 OrderSequence 的表,架构大致如下所示:

  • 编号
  • 姓名
  • 订单顺序

我的 MVC 操作代码中有一个 ID 数组(“1”、“2”、“3”、“4”),我想设置 SequenceOrder 以进行排序。我不想通过 .Net 循环它并执行 N 个 sql 查询。我应该如何使用 dapper/raw ado.net 来做到这一点?

最佳答案

Dapper 可以通过以下方式做到这一点:

connection.Execute("update Orders set Sequence=@seq where Id=@id",
ids.Select((id, seq) => new { id, seq }));

但是,这只是使用 dapper 来展开一个循环 - 实际上,它代表您每行调用 Execute,就像您已经完成的一样:

int seq = 0;
foreach(var id in ids) {
connection.Execute("update Orders set Sequence=@seq where Id=@id",
new { id, seq });
seq++;
}

如果你想一次性把所有的数据传下去,你可以看看表值参数,which dapper supports in recent builds .

关于c# - 出于性能考虑更新 N 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017235/

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