Как просто проверить, находится ли столбец DateTime в течение 30 дней с сегодняшнего дня? - PullRequest
0 голосов
/ 16 ноября 2011

В моей таблице есть столбец с именем DateTimeOfBid, мне нужно выбрать все объекты, где DateTimeOfBid находится в течение 30 дней с сегодняшнего дня.

Я использую Entity-Framework 4 для доступа к своим данным.

Вот что у меня есть:

EFUserAuctionLanceRepository userAuctionLanceRepository = new EFUserAuctionLanceRepository();

var potentialDiscount = userAuctionLanceRepository.FindAllUserAuctionLances()
                                                  .Where(u => u.UserId == user.UserId && u.AccountableForShopDiscount == true);

var discount = potentialDiscount.Where(p => p.DateTimeOfLance is within 30 days of today?)

Как мне написать этот маленький запрос?

Ответы [ 2 ]

4 голосов
/ 16 ноября 2011

Определение:

DateTime today = DateTime.Today;

и затем используйте лямбда-выражение

p => p.DateTimeOfLance >= today.AddDays(-30) &&
     p.DateTimeOfLance <= today.AddDays(30)

EF может потребоваться, чтобы вы сделали следующее:

DateTime today = DateTime.Today;
DateTime thirtyDaysAgo = today.AddDays(-30);
DateTime thirtyDaysFromNow = today.AddDays(30);


p => p.DateTimeOfLance >= thirtyDaysAgo &&
     p.DateTimeOfLance <= thirtyDaysFromNow
0 голосов
/ 16 ноября 2011

Вы также можете сделать это ....

if (DateTime.Now.AddDays(-30).CompareTo(date) > 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...