尝试使用实体框架保存DateTime字段时转换datetime2错误

时间:2015-08-26 06:41:41

标签: c# sql-server entity-framework datetime

我想用实体框架来节省时间。我对这个约会并不感到烦恼。我在Code中声明了我的属性为DateTime,我正在使用CodeFirst。

在xaml中,我使用xceed TimePicker显示时间如下

<Xceed:TimePicker Grid.Row="6" Grid.Column="1" Margin="5" Value="{Binding SelectedItem.UpdateTimer, Mode=TwoWay}" Format="LongTime" />

问题在于,当我第一次运行我的应用程序时,我的属性在代码中收到的日期时间是'01 / 0/1 / 0001',日期是我输入的时间。当我尝试保存我的上下文时,我收到此错误,这可能意味着SQL Server不喜欢我的日期。我该如何解决这个问题?

“将datetime2数据类型转换为日期时间数据类型会导致超出范围的值。\ r \ n语句已终止。”

我的物业代码是

     public DateTime UpdateTimer
         {
             get
             {
                 return Data.UpdateTimer;
             }
             set
             {
                 if (value != Data.UpdateTimer)
                 {
                     Data.UpdateTimer = value;
                     OnPropertyChanged("UpdateTimer");
                 }
             }
         }

2 个答案:

答案 0 :(得分:1)

根据我对您的代码的理解,您不会将日期设置为UpdateTimer的设置者,然后将其与TimePicker绑定,设置者返回您的控件可能是什么null,这是因为您收到此错误,请尝试在设置器中设置值,看看是否仍然出现错误,另请查看this问题,看看它是否解决了您的问题。

答案 1 :(得分:1)

我用今天的日期初始化了我的字段,解决了我的问题

        DateTime date = DateTime.Now;    
        UpdateTimer = new DateTime(date.Year, date.Month, date.Day, 0, 0, 5);