По соображениям производительности вы можете рассмотреть возможность выполнения вычислений даты непосредственно в 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;
}