Entity framework 5 实体框架5列映射日期时间

Entity framework 5 实体框架5列映射日期时间,entity-framework-5,Entity Framework 5,这似乎不起作用: this.Property(t => t.mydatetime) .HasColumnType("datetime") .HasColumnName("mydatetime"); 查看sql分析器,更新sql字符串仍然使用datetime2(7)并使用额外的小数位数。其结果是对datetime2和datetime之间的差异进行舍入 如何强制实体框架使用datetime sql类型 谢谢大家! HasColumnType(“datetime”)指定列类型,

这似乎不起作用:

this.Property(t => t.mydatetime)
    .HasColumnType("datetime")
    .HasColumnName("mydatetime");
查看sql分析器,更新sql字符串仍然使用datetime2(7)并使用额外的小数位数。其结果是对datetime2和datetime之间的差异进行舍入

如何强制实体框架使用datetime sql类型


谢谢大家!

HasColumnType(“datetime”)
指定列类型,而不是SQL语句中使用的临时参数类型。你无法控制这些,也没有必要。如果您的应用程序中有一个.NET
DateTime
,并填充了一些小数位,并且希望将其存储在
DateTime
中,请在SQL Server中键入,该值将(并且只能)存储为舍入值。舍入发生在SQL发送到数据库服务器之前的客户端,或者舍入发生在数据库服务器本身,这无关紧要。结果是一样的:四舍五入的存储值会丢失精度。

无法重新编程
HasColumnType(“datetime”)
创建一个
datatime
列(Sql Server 2008 r2,EF 5)。my db已经有一个datetime列。我没有使用EF来创建数据库。我也在使用sql 2008 r2Hmmm。。。更多相关信息?@Gert-一种简单的重新编程方法是使用带有日期时间列的现有数据库。将代码中的datetime属性保存为datetime.Now。查看sql EF生成的结果,它使用datetime2,即使您指定了.HasCOlumnType(“datetime”)。问题是,我们有两个保存相同datetime.net对象的代码路径。一个代码路径使用ef,另一个不使用。由于Ef发送7(datetime2)个小数位,而另一个发送3(datetime),因此在保存到数据库时会导致舍入问题。EF4没有出现这种情况。