我的表中有一个名为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?)
如何编写这个小查询?
答案 0 :(得分:4)
定义:
DateTime today = DateTime.Today;
然后使用lambda表达式
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
答案 1 :(得分:0)
你也可以这样做....
if (DateTime.Now.AddDays(-30).CompareTo(date) > 0)