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 类型的子类型的新并发要求。

这正是错误所说的意思。实体框架不支持派生类型中的并发检查。如果您添加简单的并发检查而不是时间戳,您将看到相同的错误:

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

如果您将并发检查移至基类,那么它将起作用,但仅适用于基类。如果您需要对派生类型执行检查,我认为您应该使用存储过程来更新实体。

于 2013-02-27T11:45:04.827 回答