私は(SQL Serverに)次のようなテーブルを持っています:
UserId CompanyId UserName Position
1 1 John 1
2 2 Adam 1
3 2 Nick 2
4 1 Mark 2
5 3 Jack 1
UserIdは、自動インクリメントを使用するPKです。CompanyIDはFKです。位置は、ユーザー(会社ごと)の単なるシーケンシャルカウンターです。
会社の新しいユーザーレコードが(LINQを介して)挿入されるときに、位置もインクリメントされるようにします。現在、指定されたCompanyIdのPositionのMAX + 1を取得し、それを新しいレコードに割り当てています。問題は、同時挿入操作の結果、位置の値が同じになることが多いことです。
一意性のために挿入トリガーの位置をインクリメントしようとしましたが、LINQは更新された値を自動的に反映しません。
LINQ-to-SQLを介して、またはTSQLクエリとして直接これを修正するにはどうすればよいですか?
どんな助けでも大歓迎です。ありがとう!