2

次のように Inherited クラスに TimeStamp フィールドを作成したいと思います。

[Table("TABLE_A")]
public class A
{
  public int ID {get;set;}

  public string Name {get;set;}
}

[Table("TABLE_B")]
public class B : A
{
  public string Address {get;set;}

  [TimeStamp]
  public byte[] RowVersion {get;set;}
}

しかし失敗しました、どうすればここでできますか?

4

1 に答える 1

4

エラーが表示されます

タイプ 'B' は、基本 EntitySet タイプのサブタイプに許可されていない新しい同時実行要件を定義します。

それはまさにエラーが言うことを意味します。Entity Framework は、派生型での同時実行チェックをサポートしていません。タイムスタンプの代わりに単純な同時実行チェックを追加すると、同じエラーが表示されます。

[Table("TABLE_B")]
public class B : A
{
    [ConcurrencyCheck]
    public string Address { get; set; }
}

並行性チェックを基本クラスに移動する場合、それは機能しますが、基本型でのみです。派生型でチェックを実行する必要がある場合は、ストアド プロシージャを使用してエンティティを更新する必要があると思います。

于 2013-02-27T11:45:04.827 に答える