在庫管理をする必要があるので、製品の量を変更したときに、正しい方法で行われていることを確認する必要があります。EntityFramework4.0を使用しています
たとえば、トランザクションを使用する場合、データベースからレコードをロードすると、リコアがブロックされるため、必要なアイテムの数であるロードされた量を減算または加算できます。ただし、これはデータベース内のレコードをブロックし、おそらくパフォーマンス上の理由から、最善の方法ではありません。これにより、EFとのトランザクションをいつ使用するかを尋ねられます。
もう1つのオプションは、エンティティフレームワークの同時実行性を使用し、タイムスパン列を使用してレコードが変更されたかどうかを検出することです。この場合、ロードと更新の間にレコードが変更されていると、同時実行の例外が発生します。ただし、例外ハンドラーで、データベースデータを使用してコンテキストを更新すると、更新とsavechangesの間で再度変更される可能性があります。
もう1つの問題は、最終的に変更を保存できることです。たとえば、私は10ユニットを持っており、8を差し引く必要がありますが、ロードと更新の間に、他の人が5ユニットを差し引きます。8を引くと、在庫は-3ユニットになります。これは不可能です。トランザクションがある場合は、レコードをロードしてブロックされるため、十分なユニットがあるかどうかを確認できます。十分な数がある場合はサブトラックでき、ない場合は例外を送信します。
ですから、私の質問は、EFはそれ自体がトランザクションであることを知っていますが、EF内のトランザクションにも存在するため、場合によっては役立つでしょう。EFと共通貨をいつ使用するか、またいつトランザクションを使用するか。
ありがとう。ダイムロック。