我想在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;}
}
但失败了,我该怎么办?
答案 0 :(得分:3)
你会看到错误
类型“B”定义了不允许的新并发要求 基本EntitySet类型的子类型。
这意味着错误说明了什么。实体框架不支持派生类型中的并发检查。如果您要添加简单并发检查而不是时间戳,您将看到相同的错误:
[Table("TABLE_B")]
public class B : A
{
[ConcurrencyCheck]
public string Address { get; set; }
}
如果要将并发检查移动到基类,那么它将起作用,但仅适用于基类型。如果您需要检查是否对派生类型执行,我认为您应该使用存储过程来更新实体。