我想用实体框架来节省时间。我对这个约会并不感到烦恼。我在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");
}
}
}
答案 0 :(得分:1)
根据我对您的代码的理解,您不会将日期设置为UpdateTimer
的设置者,然后将其与TimePicker
绑定,设置者返回您的控件可能是什么null,这是因为您收到此错误,请尝试在设置器中设置值,看看是否仍然出现错误,另请查看this问题,看看它是否解决了您的问题。
答案 1 :(得分:1)
我用今天的日期初始化了我的字段,解决了我的问题
DateTime date = DateTime.Now;
UpdateTimer = new DateTime(date.Year, date.Month, date.Day, 0, 0, 5);