首页 新闻 会员 周边

LinQ问题 获取年份为什么要加个value

0
[已解决问题] 解决于 2013-11-22 12:29

哪位仁兄能告诉我输出年份时,为什么要加个value,这是什么意思,只有输出键值对的时候才这样干啊.

思思博士的主页 思思博士 | 菜鸟二级 | 园豆:224
提问于:2012-10-27 15:02
< >
分享
最佳答案
0

Year是DateTime类型的属性,而年份的类型是DateTime?,这个类型没有Year这个属性,但年份.Value是

DateTime类型,这样年份.Value.Year就可以取到年份值了。

奖励园豆:5
博爸 | 菜鸟二级 |园豆:220 | 2012-10-29 13:04
其他回答(3)
0

因为这里年份的类型是DateTime?,也就是Nullable<DateTime>,可空值类型(当值为null时对应数据库里NULL值),因此要用它的Value字段去获取值。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-10-27 15:19

还是不太明白

支持(0) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2012-10-27 15:30
0

你年份这个字段存在数据库是不是可为空的?

学学学习 | 园豆:427 (菜鸟二级) | 2012-10-27 17:29

为什么可为空就要用value

支持(1) 反对(0) 思思博士 | 园豆:224 (菜鸟二级) | 2012-10-27 17:30

@郭延思: value其实就是他的一个属性,是值的意思。如果为空的时候不加vlaue他返回的是null,那么你赋值就会说将可为空给了不能空的。而加了value,也就是把null当成一个返回值赋值过去了。

支持(0) 反对(0) 学学学习 | 园豆:427 (菜鸟二级) | 2012-10-27 17:39
0

数据库中的BirthDate字段被设置为DateTime类型,同时可为空,在.Net里默认作为DateTime?,也就是Nullable<DateTime>类型处理,获取Nullable<T>类型变量的值时,要用关键字Value获取或者使用GetValueOrDefault()方法获取字段的值。具体可参考 Nullable<T>结构的代码。

RyanCheng | 园豆:474 (菜鸟二级) | 2012-11-29 09:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册