asp.net-mvc – 使用EF4转换为datetime时发生溢出
我有一个使用SQL Compact 4.0数据库的Windows应用程序,使用EF 4.1和代码优先方法。
我无法保存对象到数据库,因为我得到一个异常,与内部异常 “转换为datetime时发生溢出” 当尝试保存类型报价: public class Quotation { public int ID { get; set; } public string Name { get; set; } public DateTime DateCreated { get; set; } public ContactPerson ContactPersonAssigned { get; set; } public string OurReference { get; set; } public string QuotationDataString { get; set; } } 我读到这个错误可能是由于我的应用程序设置和有关转换日期的sql compact数据库设置之间的不匹配引起的。 我刚接触SQL compact。你能帮我调试这个问题吗? 解决方法
如果您的模型具有类型为DateTime的不可空属性,则当您发布具有该值的空值的表单时,它将自动设置为DateTime.MinValue,它在.net 01/01/0001(
DateTime.MinValue on MSDN)中。
(作为附注,您可以通过为DateTime实现自己的IModelBinder来更改此行为,如果尝试的值为空/空且属性不可为空,则可以抛出验证异常)。 如果您尝试将该值(DateTime.MinValue)保存到数据库中,则如果数据库字段为sql type datetime,则会得到转换错误,因为.net DateTime.MinValue小于SQL datetime minvalue(01/01/1753),因此无法转换为sql值。 (SQL datetime min value on MSDN) 较新版本的MS SQL Server将不会发生此错误,它具有datetime2数据类型,允许从01/01/0001到31/12/9999(SQL datetime2 on MSDN)的值(如果datetime2用于该字段,则当然)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 写了多年代码,你会 StackOverflow 吗
- asp.net-mvc – 当参数名称需要不同时,如何重用远程验证方法
- asp.net – Visual Studio 2005:是否有一个简单的方法在AS
- ASP.NET MVC4 调用存储过程
- asp.net – EF更新记录属性后在SaveChanges()上抛出NullRef
- asp.net-mvc – 为什么需要为Html.Action定义的路由?
- 腾讯云-容器-常用操作命令
- asp.net – 为应用程序池“Classic .NET AppPool”提供服务
- asp.net-mvc – ASP.NET MVC中UpdateModel的正确行为是什么
- web项目自定义路由_实现静态资源URL控制
- 企业库无法在asp.net应用程序中查找配置源文件
- asp.net-mvc – Visual Studio在剃刀语句中显示语
- asp.net-mvc-3 – asp.net mvc 3应用程序中的默认
- 在同一端口上运行多个ASP.NET Core RC2应用程序
- 用枚举填充ASP.NET MVC中的SelectList
- 使用ASP.NET Identity 2.0和MVC 5进行自定义单点
- asp.net – 多个RegisterClientScriptBlock
- asp.net-mvc – 在MVC Web API应用程序中跟踪
- 已部署的ASP.Net站点中的可编辑资源文件
- asp.net中的Html.ActionLink MVC对象值格式错误