EF 4.1,代码优先:商店生成的模式';计算';对于不属于';时间戳';或者';rowv
本文关键字:计算 模式 rowv 或者 时间戳 不属于 代码 EF | 更新日期: 2023-09-27 18:14:24
每个人。
我正在尝试在我的实体中添加乐观并发。实体类中定义了一个属性:
public byte[] ObjectVersion
{
// ...
}
以下是此属性的配置:
Property(obj => obj.ObjectVersion)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)
.HasColumnName("ObjectVersion")
.IsConcurrencyToken();
在运行时引发异常:"存储生成的模式'Computed'不支持非'timestamp'或'rowversion'类型的属性"。匹配的数据库列具有"rowversion"类型。
好的,让我们更改配置代码:
Property(obj => obj.ObjectVersion)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)
.HasColumnName("ObjectVersion")
.HasColumnType("rowversion")
.IsConcurrencyToken();
但仍然抛出了异常。我做错了什么?
文档显示了配置并发令牌的两种方法:
modelBuilder.Entity<OfficeAssignment>()
.Property(t => t.Timestamp)
.IsConcurrencyToken();
modelBuilder.Entity<OfficeAssignment>()
.Property(t => t.Timestamp)
.IsRowVersion();