我的表格中date
为日期时间,月份为int
。
如何获得具有
的EF的所有实体 date + month_count > today's date - 7 days
表格结构
id uniqueidentifier
date datetime
month_count int
答案 0 :(得分:0)
出于性能原因,您可能需要考虑直接在SQL中执行日期计算:
using (var dbContext = new DbContext())
{
var result = from entity in dbContext.Entities.SqlQuery(
@"SELECT * FROM entities
WHERE
DATEDIFF(d,
DATEADD(m, [month_count], [date]),
GETDATE()) > -7");
}
详细了解如何将SQL与EntityFramework here
一起使用另一种方法是将批次加载到内存中,并使用非SQL感知LINQ对其进行排序:
using (var dbContext = new DbContext())
{
var oneWeekAgo = (DateTime.Now() - TimeSpan.FromDays(7)).Date();
var result = from entity in dbContext.Entities.ToList()
where entity.Date + TimeSpan.FromMonths(entity.MonthCount)
> oneWeekAgo;
}