0

我遇到的问题是显示数据库中不超过 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;

欢迎任何建议。

4

3 回答 3

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;
于 2012-04-13T17:37:11.673 回答
1

一行 lambda 应该让你:

var adverts = db.Adverts.Where(x => x.date >= DateTime.Now.AddDays(-14) && x.date <= DateTime.Now)
于 2012-04-13T17:40:00.817 回答
0

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

var results = from ad in Adverts
              where ad.date <= DateTime.Now &&
                    ad.date >= DateTime.Now.AddDays(-14) 
              select ad;
于 2012-04-13T17:39:55.260 回答