2013-02-22 51 views
1

我正在使用连接到我的SQLDatabase的实体数据模型。DateTime.Now使用实体数据模型转换为SQLDatetime

一个特定的列是日期时间。

当我宣布为Datetime.Now我碰到下面的错误值:

Inner Exception: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

这里是我的代码片段:

ReworkEntities dbContext = new ReworkEntities(); 

     Carton carton = new Carton(); 

     Carton_Details detail1 = new Carton_Details(); 
     detail1.Detail = "Some Detail Here"; 
     detail1.DateOfSub = DateTime.Now; 

     carton.Carton_Details.Add(detail1); 

     dbContext.AddToCartons(carton); 
     dbContext.SaveChanges(); 

我花了谷歌小时,发现了类似的问题,配发但似乎没有人为我工作。

他们建议使用.toSting(“M/dd/yyyy H:mmss tt”),我为字符串值工作,但我需要DateTime值,转换回来时它仍然是一样的。

还试过.Parse,.ParseExact也没有成功。

另一篇文章建议更改SQL数据库日期时间格式,但我不能这样做,因为它是我们的代码标准使用它。

有关如何解决问题的任何建议将不胜感激。

Thanx。

+1

您确定只有一个'DataType'的字段是来自此表'Carton_Detail'的'DateTime'吗? – spajce 2013-02-22 06:10:15

+0

什么是'detail1.DateofSub'属性的'Type'? – 2013-02-22 06:13:28

+0

属性类型是DateTime,是的其他领域发布罚款,但只有detail1.DateofSub不发布。 – 2013-02-22 06:18:00

回答

0

我遇到了类似的问题,只需在实体的构造函数中为属性赋值,代码如下所示。

public class Carton_Details 
{ 
    public DateTime DateOfSub { get; set; } 

    public Carton_Details() 
    { 
     this.DateOfSub = DateTime.Now; 
    } 
} 

我希望我能帮上忙。