linq-to-sql - 在 Linq to SQL 中执行条件批量更新

标签 linq-to-sql bulk

我有一个存储带有 smallint SortOrder 字段的照片的 SQL 表。用户可以插入新照片,指定小数排序顺序以将新记录放置在 2 张现有照片之间(或在第一张照片之前)。 SortOrder 将存储为 smallint,因此当我检测到插入将移动现有记录时,我需要更新所有受影响的照片以将 SortOrder 增加 1。

这在存储过程中很容易做到,但我正在寻找使用 Linq to SQL 完成此任务的最有效方法。如果我必须将所有记录拉到客户端,更新它们,然后提交它们,那么我将坚持使用已经运行且速度非常快的存储过程。

这是移动记录的 T-SQL:

    UPDATE      Photo
    SET         SortOrder = SortOrder + 1
    WHERE       AlbumId = @AlbumId
    AND         SortOrder >= CEILING(@SortOrder)

有没有办法在 Linq to SQL 中进行这种批量更新而无需获取记录?

最佳答案

LINQ to SQL 不对集合执行 CUD 语句,因此请坚持使用您现有的实现,因为它在您的场景中是最好的。

关于linq-to-sql - 在 Linq to SQL 中执行条件批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130483/

相关文章:

c# - LINQ To SQL 动态排序

Linq-to-Sql 基类鉴别器值 BUG

c# - LINQ to SQL DAL,这个线程安全吗?

c# - 面向对象的 Linq2Sql 查询类

java - Android 中批量图片上传

c# - 在数据量大但更改集小的表上进行批量更新/合并的最佳方法

mongodb - 向 mongodb 服务器批量插入(1000 个文档)在 GCP 中是 1 IOPS,还是 1000 iops?

linq-to-sql - LINQ到实体和延迟加载

Linq 到 Nhibernate 批量更新查询等效?

mysql - MariaDB InnoDB批量INSERT慢超时