实体框架时间戳生成数据库问题

Posted

技术标签:

【中文标题】实体框架时间戳生成数据库问题【英文标题】:Entity Framework timestamp Generate Database issue 【发布时间】:2011-03-12 04:21:35 【问题描述】:

我遇到了 EF 4.0 的问题 我用“时间戳”列创建实体。之后,我尝试生成数据库。

在 SQL 脚本中,列看起来像 'binary(8)' 而不是时间戳。

如何解决?

【问题讨论】:

【参考方案1】:

问题已解决:EF 4 无法从 edmx 设计器生成时间戳列。 解决方法很简单:

    将类型设置为二进制。 将 nullable 设置为 false。 将 StoreGeneratedPattern 设置为 Computed。 将 ConcurrencyMode 设置为 Fixed。 创建 SSDLToSQL10.tt 的副本(通常位于 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen 中)。我们称之为 MySSDLToSQL10.tt。 编辑以下内容的行(当前为 151):

[]

    将其更改为:

[] timestamp

【讨论】:

@kayluhb 在 EF 5 中,它并没有完全修复,但要容易得多。只需将属性的并发模式更改为Fixed即可。

以上是关于实体框架时间戳生成数据库问题的主要内容,如果未能解决你的问题,请参考以下文章

在实体框架代码中,日期时间总是更改为时间戳

禁用实体框架的默认值生成(代码优先)

使用实体框架核心生成和访问存储过程

给实体框架生成的类添加数据注解

使用带有本地数据库文件 (Sdf) 的实体框架生成 C# 整数主键

带有 Sql 视图的实体框架在生成 .sql 文件中显示为表