smallintSortOrderフィールドを持つ写真を格納するSQLテーブルがあります。ユーザーは、新しい写真を挿入し、10進数の並べ替え順序を指定して、2つの既存の写真の間(または最初の写真の前)に新しいレコードを配置できます。SortOrderはsmallintとして保存されるため、挿入によって既存のレコードがシフトすることを検出したら、影響を受けるすべての写真を更新して、SortOrderを1つインクリメントする必要があります。
これはストアドプロシージャで簡単に実行できますが、LinqtoSQLを使用してこれを実現するための最も効率的な方法を探しています。すべてのレコードをクライアントにプルダウンし、更新してから送信する必要がある場合は、すでに機能していて非常に高速なストアドプロシージャを使用します。
レコードをシフトするT-SQLは次のとおりです。
UPDATE Photo
SET SortOrder = SortOrder + 1
WHERE AlbumId = @AlbumId
AND SortOrder >= CEILING(@SortOrder)
レコードをフェッチせずに、LinqからSQLへのこの種の一括更新を行う方法はありますか?