Entity Framework 更新数据库 datetime 类型的问题 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。
从ado.net 的实体模型创建sql2008的数据库,日期类型为 datetime ,可是在代码里修改日期时,savechanges 就会抛出异常,异常信息为:
更新条目时出错。有关详细信息,请参见内部异常
查看内部异常信息为:
从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
郁闷死啦,终于找到了微软的这个说明:
System.Datetime
CLR System.DateTime 类型的范围和精度大于 SQL Server DATETIME 类型,这是 DataContext.CreateDatabase 方法的默认类型映射。要避免与 DATETIME 范围之外的日期相关的异常,请使用 DATETIME2(从 Microsoft SQL Server 2008 开始可用)。DATETIME2 可以与 CLR System.DateTime 的范围和精度相匹配。
说明来自:http://msdn.microsoft.com/zh-cn/library/bb386947.aspx
修改数据库中的datetime 为 datetime2 后问题解决。
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决