我有一個存儲照片的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