Entity framework 使用实体框架计算日期?

Entity framework 使用实体框架计算日期?,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我有一个表,其中日期为datetime,月份计数为int 如何获取所有具有EF的实体 date+month\u count>今天的日期-7天 表结构 id uniqueidentifier date datetime month_count int 出于性能原因,您可能需要考虑在SQL:中直接执行日期计算。 using (var dbContext = new DbContext()) { var result = from entity in dbContext.Entities.

我有一个表,其中日期为datetime,月份计数为int

如何获取所有具有EF的实体

date+month\u count>今天的日期-7天

表结构

id uniqueidentifier
date datetime
month_count int 

出于性能原因,您可能需要考虑在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");
}
阅读有关在EntityFramework中使用SQL的更多信息

另一种方法是将批次加载到内存中,并使用不支持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;
}