使用时间戳类型的Entity Framework代码优先模式

8
我正在使用SQL Server 2008 R2和Entity Framework 5.0。在生成数据库时,如果我想添加类型为TimeStamp的属性,则会出现以下错误: 没有与概念侧类型“Edm.Time(Nullable = True,DefaultValue =,Precision =)”对应的存储类型。 我已经尝试将实体配置设置为时间或时间戳类型,但仍然失败。
Property(x => x.RestBetweenSet).HasColumnType("timestamp");

当我进入 Sql Server Management Studio 并编辑表时,我可以设置时间戳列。

我需要做什么才能让 Entity Framework Code First 能够生成这个列?

谢谢。

3个回答

15
你应该在你的第一个类中声明时间戳属性,如下所示:
[Timestamp] 
public Byte[] MyTimestamp { get; set; }

嗨,问题在于如果它是一个字节,我们不能再使用所有时间戳方法。 - Patrick Desjardins

3

现在,我将其映射为INT64并忽略时间戳。就像这个帖子中所示。

如果有更好的解决方案,请随意添加。我还不会接受我的答案。


1
所以你想要存储一个时间段而不是一个时间戳? - Tony Edgecombe

1

我不确定我很好地理解了你的问题,但这是我使用Code First方法和Entity Framework生成时间戳字段的方式:

[Required, DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreatedAt { get; set; }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接