すべてのエンティティが継承するスタンプ、ID、および状態と呼ばれるバイト配列を含む BaseEntity クラスを取得しました。スタンプをマッピングしています
Property(t => t.Stamp).IsRequired().IsRowVersion();
これは、このように設定されている BaseEntityConfiguration に設定されています
public BaseEntityConfiguration<T> : EntityTypeConfiguration<T> where T :B aseEntity
マッピングはこのように行われます
var baseMapConfiguration = new BaseEntityConfiguration<EntityA>();
modelBuilder.Configurations.Add(baseMapConfiguration);
var entityAMap = new EntityAMap(baseMapConfiguration);
データベースにスタンプ ROWVERSION NOT NULL があります。テーブルEntityAにDbUpdateConcurrencyExceptionを処理するコードがありますが、スタンプが異なっていてもこれはキャッチされませんまた、私が期待していたスタンプフィールドに関するwhere句はありません
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[LastModified] AS [LastModified],
[Extent1].[CreatedDate] AS [CreatedDate],
[Extent1].[Stamp] AS [Stamp]
FROM [dbo].[EntityA] AS [Extent1]
whereステートメントが表示されていないので、通常のマッピング設定で試してみましたが、それでも同じ結果が得られます
**EF が渡されたものではなく最新の Rowversion を取得しているという問題が見つかりました。これを停止するにはどうすればよいですか。**