从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 后问题解决。

posted on 2010-07-24 14:23  ‰流浪※  阅读(2942)  评论(1编辑  收藏  举报