Spiga

LINQ查询中,对于值类型的比较应注意使用Value属性

2011-05-01 20:23 by 梁逸晨, 93 visits, 收藏, 编辑

例如,对于入住天数,如果我们使用 :

data.Where(o => o.custom_livedays.Equals(_livedays));

在语义上是没有问题的,但是不会得到我们想要的答案,正确的写法是:

data.Where(o => o.custom_livedays.Value.Equals(_livedays));

 

仅对于值类型是如此,如果是引用类型,例如string, 那么就用不着value属性了。例如:

data.Where(o => o.custom_name.Equals("字符串值")); 

Add your comment

1 条回复

  1. #1楼[楼主] 梁逸晨      2011-05-01 20:24
    个人习惯用lambda表达式,对于纯LINQ写法,道理一样,都有Value属性的。
     回复 引用 查看