|
ConcurrencyCheck機能はドメインクラスのプロパティに適用可能です。 EFが更新操作を行うと、Code-Firstはその列の値をwhere条件文に入力し、このCurrencyCheck機能を使って既存の列を使って並行性チェックを行うことができ、別々のTimeStamp列を並行性チェックに使う必要はありません。 以下のコードをご覧ください: 次に、メイン関数のテストコードを修正しましょう:
このとき、エラー同時実行メッセージは次のようになります:
執行sp_executesql N'UPDATE [dbo]。 [学生情報] SET [StudentName] = @0, [StdId] = @1 ここで ((([StudentKey1] = @2) AND ([StudentKey2] = @3)) AND ([StudentName] = @4)) ',N'@0 nvarchar(20),@1 int,@2 int,@3 int,@4 nvarchar(20)',@0=N'Test Only For one',@1=1,@2=1,@3=1,@4=N'Test Only For one' ご注意ください:
TimeStamp属性はクラス内の1バイト配列プロパティにのみ適用できるのに対し、ConcurrencyCheck属性は任意のデータ型を持つ任意の数のプロパティに適用可能です。
TimeStamp機能は単一バイトのプロパティを持つクラスでのみ使用可能ですが、ConcurrencyCheck機能は任意の数や種類のプロパティで使用できます。
|