TranRefId を含むトランザクション テーブルがあります (購入と取り消しトランザクションをグループ化するため)。SQL データベースとのインターフェースは Entity Framework 4 を使用しています。
- TranRefId の値を明示的に指定する
- 何も指定されていない場合、値を自動生成します (MAX を照会してインクリメントするか、その他の方法で)。
これは Web アプリケーションであるため、複数のスレッドがこのアクションを同時に実行する可能性があるという懸念があります。Select Max(TranRefId) を実行して値をインクリメントすると、複数のトランザクションが同じ値になる可能性が高くなります (同時実行のため)。 このような同時実行の問題を解決するために、Entity Framework 内に解決策はありますか??
また、TranRefId はアカウントにのみ固有です。以下のサンプルデータを参照してください...
トランザクション テーブル (申し訳ありませんが、ここでテーブルを作成する他の方法がわかりません...)
TranId_ _ TranRefId _ _Account
1_ _ _ ____ 1 _ _ _ __ _ _ A
2 _ __ _ _ __ 1 _ _ _ _ _ A
3 _ _ __ _ __ 1 _ __ _ ____ B
4 _ __ _ __ _ _ 2 _ _ _ _ _ __ _ ____ B
5 _ __ _ __
_ _ 1 _ _ _ _ _ _C