asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 使用EF4转换为datetime时发生溢出大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用sqL Compact 4.0数据库的Windows应用程序,使用EF 4.1和代码优先方法。
我无法保存对象到数据库,因为我得到一个异常,与内部异常
“转换为datetiR_199_11845@e时发生溢出”
当尝试保存类型报价:
public class Quotation
{
    public int id { get; set; }

    public String Name { get; set; }

    public datetiR_199_11845@e DateCreated { get; set; }

    public ContactPerson ContactPersonAssigned { get; set; }

    public String OurReference { get; set; }

    public String QuotationDataString { get; set; }
}

我读到这个错误可能是由于我的应用程序设置和有关转换日期的sql compact数据库设置之间的不匹配引起的。
我不确定,因为我的sdf数据库文件有一个字段正确名为“DateCreated”,不可空,类型为“datetiR_199_11845@e”。

我刚接触SQL compact。你能帮我调试这个问题吗?

解决方法

如果您的模型具有类型为datetiR_199_11845@e的不可空属性,则当您发布具有该值的值的表单时,它将自动设置为datetiR_199_11845@e.MinValue,它在.net 01/01/0001( DateTime.MinValue on MSDN)中。

(作为附注,您可以通过为datetiR_199_11845@e实现自己的IModelBinder来更改此行为,如果尝试的值为空/空且属性不可为空,则可以抛出验证异常)。

如果您尝试将该值(datetiR_199_11845@e.Minvalue)保存到数据库中,则如果数据库字段为sql type datetiR_199_11845@e,则会得到转换错误,因为.net datetiR_199_11845@e.MinValue小于SQL datetiR_199_11845@e minvalue(01/01/1753),因此无法转换为sql值。 (SQL datetime min value on MSDN)

较新版本的MS SQL Server将不会发生此错误,它具有datetiR_199_11845@e2数据类型,允许从01/01/0001到31/12/9999(SQL datetime2 on MSDN)的值(如果datetiR_199_11845@e2用于该字段,则当然)。

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – 使用EF4转换为datetime时发生溢出全部内容,希望文章能够帮你解决asp.net-mvc – 使用EF4转换为datetime时发生溢出所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。