LINQ VB.NET检查生效日期和结束日期之间的日期(结束日期可以为空)

时间:2013-07-01 19:06:51

标签: vb.net linq

我有一个LINQ查询VB.NET,我必须检查日期是否在时间跨度之间---这是需要生效日期的扭曲,但结束日期可以为空白

我可以拥有相同的记录,但日期不能重叠

  .Where(Function(x) x.srvc_def_desc = txtSrvDefDesc.Text.Trim()) _
                      .Where(Function(x) txtsrvEffDt.SelectedDate >= x.eff_dt And (txtsrvEffDt.SelectedDate <= x.end_dt)).Count()

我遇到的问题是如何检查可以为空的日期,将其视为有效期和结束日期之间的日期?

1 个答案:

答案 0 :(得分:0)

 .Where(Function(x) _
       x.srvc_def_desc = txtSrvDefDesc.Text.Trim() _
       AndAlso txtsrvEffDt.SelectedDate >= x.eff_dt _
       AndAlso (Not txtSrvEffDt.HasValue() OrElse txtsrvEffDt.SelectedDate <= x.end_dt)).Count()

可以简化为(如果您感兴趣的是Count):

 .Count(Function(x) _
       x.srvc_def_desc = txtSrvDefDesc.Text.Trim() _
       AndAlso txtSrvEffDt.SelectedDate >= x.eff_dt _
       AndAlso (Not txtSrvEffDt.HasValue() OrElse txtsrvEffDt.SelectedDate <= x.end_dt))