【发布时间】:2013-12-04 18:35:25
【问题描述】:
我最近通过 NuGet 更新程序从 EntityFramework 5 升级到 6。一切似乎都很顺利,我构建并执行了我的应用程序。当我试图从数据库中检索第一个实体时,我收到了这个错误:
属性“UpdatedDate”不是字节数组。 IsRowVersion 只能 为字节数组属性配置。
这是它所指的一段代码:
[Timestamp]
public virtual DateTime UpdatedDate { get; set; }
我尝试删除时间戳属性,但无论如何都得到相同的错误。如何解决此问题,以便我可以使用 EF6 运行我的应用程序?
【问题讨论】:
-
您的代码错误。
ROWVERSION/TIMESTAMP是字节数组,与时间无关。 technet.microsoft.com/en-us/library/ms182776.aspx -
正是 SLaks 所说的。
Timestamp这个名字非常在这方面具有误导性。不幸的是,它被转移到了 EntityFramework... -
我不明白。表列是一个日期时间,并且模型属性上有一个 Timestamp 属性。即使这样是错误的,为什么我在删除时间戳属性时会收到相同的错误消息?
-
您确定在删除
Timestamp属性后已正确清理和重建代码吗?而且您没有在模型配置中手动调用IsRowVersion()?并且列的类型是数据库中的datatime,您只是先使用代码? -
原来我在另一个类上有一个时间戳属性。错误消息一定非常相似,以至于我无法识别对第二类的引用。谢谢 nemesv。
标签: c# entity-framework ef-code-first entity-framework-6