我有一个SQL表,用一个smallint SortOrder字段存储照片。用户可以插入新照片,并指定一个小数排序顺序将新记录放置在两个现有照片之间(或者在第一个照片之前)。SortOrder将被存储为smallint,因此当我检测到插入将移动现有记录时,我需要更新所有受影响的照片,以将SortOrder增加1。
这在存储过程中很容易实现,但我正在寻找使用Linq to SQL实现此目标的最有效方法。如果我必须将所有记录都拉到客户端,然后更新它们,然后再提交它们,那么我将坚持使用已经工作并且非常快的存储过程。
以下是移动记录的T-SQL:
有没有办法在Linq to SQL中批量更新记录而不必获取这些记录?
这在存储过程中很容易实现,但我正在寻找使用Linq to SQL实现此目标的最有效方法。如果我必须将所有记录都拉到客户端,然后更新它们,然后再提交它们,那么我将坚持使用已经工作并且非常快的存储过程。
以下是移动记录的T-SQL:
UPDATE Photo
SET SortOrder = SortOrder + 1
WHERE AlbumId = @AlbumId
AND SortOrder >= CEILING(@SortOrder)
有没有办法在Linq to SQL中批量更新记录而不必获取这些记录?