实体框架和SqlDateTime溢出最佳实践

Buh*_*ica 5 entity-framework sqldatetime

System.DateTime可以采用比SQL Server的DateTime更广泛的值.因此,有一类System.Data.SqlTypes.SqlDateTime模仿后者.

因此,我原本期望Entity Framework选择SqlDateTime,但事实并非如此.

所以我的问题是......

当您尝试将DateTime值保存到数据库时,确保DateTime值不会导致问题的最佳做法是什么?

有没有办法强迫EF使用SqlDateTime?

mar*_*c_s 4

您可以做很多事情:

  • 如果您使用的是 SQL Server 2008 或更高版本,则可以在数据库上使用DATE或数据类型,它们提供与 .NET 相同的日期范围DATETIME2DateTime

  • 如果您无法使用这些新数据类型,则在将数据存储到持久存储中之前,您需要对日期字段进行一些检查/验证。EFEntityObject提供了多种方法来利用验证和保存对象的过程 - 选择一种适合您的方法