C# IsRowVersion只能为字节数组属性配置
我最近通过NuGet更新程序从EntityFramework 5升级到了6。一切似乎都进展顺利,我构建并执行了我的应用程序。当我试图从数据库检索第一个实体时,收到以下错误: 属性“UpdateDate”不是字节数组。IsRowVersion只能 必须为字节数组属性配置 下面是它所指的一段代码:C# IsRowVersion只能为字节数组属性配置,c#,entity-framework,ef-code-first,entity-framework-6,C#,Entity Framework,Ef Code First,Entity Framework 6,我最近通过NuGet更新程序从EntityFramework 5升级到了6。一切似乎都进展顺利,我构建并执行了我的应用程序。当我试图从数据库检索第一个实体时,收到以下错误: 属性“UpdateDate”不是字节数组。IsRowVersion只能 必须为字节数组属性配置 下面是它所指的一段代码: [Timestamp] public virtual DateTime UpdatedDate { get; set; } 我尝试删除timestamp属性,但不管怎样都得到了相同的错误。如何解决此问题
[Timestamp]
public virtual DateTime UpdatedDate { get; set; }
我尝试删除timestamp属性,但不管怎样都得到了相同的错误。如何解决此问题,以便使用EF6运行我的应用程序?
如果使用[TimeStamp]
属性,则属性应为byte[]然后将其映射到SQL server中的Rowversion 如果您想要其他字段类型作为并发字段。
使用属性
[concurrency check]
您的代码是错误的<代码>行版本/时间戳
是一个字节数组,与时间无关。正是斯莱克斯说的。名称时间戳
对此具有很大的误导性。不幸的是,它被带入了EntityFramework…我不明白。表列是一个datetime,model属性上有一个Timestamp属性。即使这是错误的,为什么在删除timestamp属性时会收到相同的错误消息?您确定在删除timestamp
属性后已正确清理和重建代码吗?您在模型配置中不手动调用IsRowVersion()
?列的类型是数据库中的datatime,您只会先使用代码?结果是我在另一个类上有一个timestamp属性。错误消息一定非常相似,我不认识对第二个类的引用。感谢nemesv.或在Fluent API中使用:modelBuilder.Entity().Property(e=>e.updateDate.IsConcurrencyToken();