2017-01-03 2 views
0

У меня есть таблица с date как дата и время, как int.Расчет дат с помощью Entity Framework?

Как я могу получить все объекты с EF, которые являются

date + month_count > today's date - 7 days

структура таблицы

id uniqueidentifier 
date datetime 
month_count int 

ответ

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; 
} 
Смежные вопросы