C# · 12月 28, 2021

c# – 实体框架丢失Sql DateTime精度

我使用实体SQL查询我的EDM,并且在我的DateTime值上损失了毫秒的精度.例如2011/7/20 12:55:15.333 PM更改为2011/7/20 12:55:15.000 PM.

我已经确认在sql中,毫秒记录是精确的.

我可以在.edmx XML文件中应用一个Precision属性,但是我不知道它需要什么样的值,

<Property Name=”Timestamp” Type=”DateTime” Nullable=”false” Precision=”???” />

有谁知道如何使用这个精度属性?

谢谢.

解决方法 这取决于sql Server版本…参见 http://seesharper.wordpress.com/2008/07/08/sql-server-datetime-vs-net-datetime-battle-of-accuracy/

如果是sql Server 2008,将DB中的数据类型更改为datetime2,然后从DB更新模型.

否则,您可以将精度设置为3(小数部分为3位,参见http://msdn.microsoft.com/en-us/library/cc716737.aspx).