仅显示两周的记录!从创造

时间:2012-04-13 17:33:57

标签: c# linq

我遇到的问题是显示数据库中不超过14天的记录。这个想法是有人会创建一个广告,它只会显示两周。

我是LinQ的新手,发现难以理解这种查询的语法。

已创建以下查询以显示下面显示的所有广告。

var Adverts = from m in db. Adverts
 select m;

以下是我想要实现的目标。

var Adverts = from m in db. Adverts
where m.date  == DateTime.Now 

---- Unsure of how to input a date range ------

 select m;

任何建议都欢迎。

3 个答案:

答案 0 :(得分:2)

var now = DateTime.Now;
var twoWeeksAgo = now.AddDays(-14);
var adverts = 
    from advert in db. Adverts
    where advert.date >= twoWeeksAgo && advert.date <= now
    select advert;

答案 1 :(得分:1)

一行lambda应该得到你:

var adverts = db.Adverts.Where(x => x.date >= DateTime.Now.AddDays(-14) && x.date <= DateTime.Now)

答案 2 :(得分:0)

DateTime类实现IComparable。因此,你可以这样做。

var results = from ad in Adverts
              where ad.date <= DateTime.Now &&
                    ad.date >= DateTime.Now.AddDays(-14) 
              select ad;