背景: データ アクセスとして EF 6.0 を使用して ASP.Net Web フォーム アプリケーションを開発しています。私は3層..ウェブサイト - >ビジネス - >データアクセス(EFとEDMXはここにあります)..コードでデータベースの同時実行を処理したかったのです。
サンプル テーブルは次のようになります。 Table :EmployeeMaster Columns : EmpID, EMpName, Address, UpdatedBy, UpdatedOn (DataTime)
いくつかのブログで説明されているように、データベースにデータ型「タイムスタンプ」の列「ConcurrencyCheck」を持ち、モデルで同時実行モードを「固定」に設定することで、楽観的同時実行を実装しようとしました。うまくいきました。ただし、ほとんどすべてのテーブル (約 50 のテーブルがあります) に 1 つの列を追加するのは少し奇妙だと思います。
質問: 既存の列を同時実行チェックに使用して楽観的同時実行を実現する方法はありますか?
既存の列「UpdatedOn」(日時列、null不可)を同時実行モードで「固定」に設定しようとしました。同時実行チェックが行われていました。ただし、更新を行うと、同時実行チェックを実行するために以前のタイムスタンプが含まれているため、そのフィールドに最新の時刻を更新することはできません。
注: EF は、同時実行モード "固定" としてマークした列をその where 句に追加し、目的の結果を達成することを認識しています。メソッドを呼び出すたびに DB コンテキストを作成しています。