7

我将我的数据库模型配置为使用 datetime2 格式,而不仅仅是 datetime。生成数据库时,所有日期列都是 datetime 而不是 datetime2。这是我的列配置代​​码;

Property(a => a.LastOpened)
    .HasColumnOrder(++index)
    .HasColumnType("datetime2")
    .HasPrecision(0)
    .IsRequired();

我可以发誓这在 EF 的早期版本(例如 4.1)中有效,但我不明白为什么它现在不起作用。我正在连接到 SQL Server 2008 R2...

任何帮助,将不胜感激!

谢谢你!

4

1 回答 1

8

来自ADO.NET 团队博客

已知的问题

[...]

  • 并非所有硬编码的列数据类型都在生成的数据库中得到认可。如果使用 Column 数据注解或 HasColumnType Fluent API 方法硬编码一个列数据类型(即 xml、money 等),创建数据库时不会使用该数据类型。我们将在 4.3.1 补丁版本中包含此问题的修复程序。

更新

EF4.3.1 补丁现已推出。EF4.3.1 和 EF5 Beta 1 在 NuGet 上可用

于 2012-02-27T15:50:03.657 回答