按日期使用LINQ过滤数据集

时间:2013-11-28 09:12:51

标签: c# linq

这是我的LINQ声明:

var query = from s in ctx.location
    join b in ctx.order on s.locationID
    equals b.ID
    join e in ctx.offerdata on b.OrderID
    equals e.OrderID

    where e.delDate.Value.Year == 2013

   orderby e.identity_no
   select new Order
   {
...

   };

  return query.ToList();

我的delDate是一个?DateTime,例如它看起来像2013-05-15 14:10:00(yyyy-MM-dd hh:mm:ss)。 但我希望收到所有数据集,例如2013年。(或我选择的任何其他年份)。

但是,其中e.delDate.Value.Year 语句不提供.Contains方法,所以我该怎么办呢?

非常感谢!

1 个答案:

答案 0 :(得分:1)

这里最好的选择是建立一个范围,即

var start = new DateTime(2013,1,1), end = new DateTime(2014,1,1);
...
    where e.delDate.Value >= start && e.delDate.Value < end

可以也使用日期部分实用程序,但这取决于LINQ提供程序支持的内容;几乎任何提供商都支持基本范围。