选择日期可以为null的日期

时间:2011-05-08 19:48:44

标签: c# linq

我有一个看起来像这样的对象:

public class MyObject
{
  public Nullable<DateTime> SpecificDate {get;set;}
  ....other properties
}

我正在编写一个动态查询,接收此对象作为参数,我可能需要或不需要SpecificDate:

   if (condition){
       TheQuery = from....
                  where x.AppointDate.Date == TheObject.SpecificDate.Date
    }

但是,当我写TheObject.SpecificDate时。我没有得到intellisense来选择.Date属性。

知道为什么吗?

感谢。

2 个答案:

答案 0 :(得分:5)

您需要撰写TheObject.SpecificDate.Value.Date

但是,要小心,因为如果日期为null,则会抛出。您可能想先检查TheObject.SpecificDate != null

答案 1 :(得分:1)

您需要检查SpecificDate.HasValue属性

所以你的代码应该是这样的:

if (condition){
   TheQuery = from....
              where TheObject.SpecificDate.HasValue && x.AppointDate.Date == TheObject.SpecificDate.Value.Date
}