Year是DateTime类型的属性,而年份的类型是DateTime?,这个类型没有Year这个属性,但年份.Value是
DateTime类型,这样年份.Value.Year就可以取到年份值了。
因为这里年份的类型是DateTime?,也就是Nullable<DateTime>,可空值类型(当值为null时对应数据库里NULL值),因此要用它的Value字段去获取值。
还是不太明白
你年份这个字段存在数据库是不是可为空的?
为什么可为空就要用value
@郭延思: value其实就是他的一个属性,是值的意思。如果为空的时候不加vlaue他返回的是null,那么你赋值就会说将可为空给了不能空的。而加了value,也就是把null当成一个返回值赋值过去了。
数据库中的BirthDate字段被设置为DateTime类型,同时可为空,在.Net里默认作为DateTime?,也就是Nullable<DateTime>类型处理,获取Nullable<T>类型变量的值时,要用关键字Value获取或者使用GetValueOrDefault()方法获取字段的值。具体可参考 Nullable<T>结构的代码。