我有一个存储照片的SQL表,它包含一个smallint SortOrder字段。用户可以插入新照片,指定小数点排序顺序以在2张现有照片(或第一张照片之前)之间放置新记录。 SortOrder将作为smallint存储,因此当我检测到插入操作会移动现有记录时,我需要更新所有受影响的照片以将SortOrder增加1.在Linq中执行条件批量更新到SQL
这很容易在存储过程中完成,但我正在寻找最有效的方法来完成这与Linq to SQL。如果我必须将所有记录提交给客户端,更新它们,然后提交它们,那么我将坚持使用已经运行并且速度非常快的存储过程。
这里的T-SQL是将这个记录:
UPDATE Photo
SET SortOrder = SortOrder + 1
WHERE AlbumId = @AlbumId
AND SortOrder >= CEILING(@SortOrder)
有没有办法做这样的批量更新的Linq中,而无需获取记录到SQL?
+1用于粘贴sprocs。这似乎是完成LINQ(如跨数据库查询)所不能完成的事情的答案。 – 2010-01-25 08:51:18