モデルの最初のアプローチにおけるTIMESTAMP属性によるEF同時実行処理
-
12-12-2019 - |
質問
記事は言う:
部門エンティティへの追跡プロパティの追加
モデル\ department.cs、追跡プロパティを追加する:
.[Timestamp] public Byte[] Timestamp { get; set; }
timestamp属性は、この列がデータベースに送信された更新コマンドと削除コマンドのWHERE句に含まれることを指定します。
私はモデルの最初のアプローチを使っているので、エンティティフレームワークを使用したタイムスタンプ列の作成
- EFのモデルのエンティティに "timestamp"という名前のプロパティを追加します。
- タイプをバイナリに設定します
- false にnullableを設定します
- 計算済みにStoreGeneratedPatternを設定します。
- concurrencyModeを固定に設定します。
データベースモデルからコードを更新すると、Models \ Department.csにが含まれています
.public virtual byte[] Timestamp { get; set; }
その後、Metadataクラスを使用してTIMESTAMP属性を指定しました:
.// Metadata for Department entity public class DepartmentMetadata { [Timestamp] public byte Timestamp { get; set; } }
q1。私は行編集の場合に
Timestamp
列の値が変化しているかどうかをテストしました。そうではありません。編集1 SQL Server列の種類が
binary
であるため、timestamp
の型があるはずです。データ型の変更[タイムスタンプ]列の問題が更新されていません。q2。私は、
OptimisticConcurrencyException
がスローされているかどうかを確認するために、同じエンティティを変更しようとしていました([新しいタブで開く]を使用して)。そうではありません。私は何が悪いのですか?理解してください、ありがとうございました。のスクリーンショット
解決
HTTPセッションごとに1つのObjectContextを持っていたため、新しいタブを開くとテストをテストしているため、ではありません。
所属していません StackOverflow