Я хочу проверить, установлена ли данная дата более чем на месяц раньше сегодняшней даты с использованием LINQ.Как сравнить даты в LINQ?
Что такое синтаксис для этого?
Заранее спасибо.
Я хочу проверить, установлена ли данная дата более чем на месяц раньше сегодняшней даты с использованием LINQ.Как сравнить даты в LINQ?
Что такое синтаксис для этого?
Заранее спасибо.
Я предполагаю, что вы говорите в разделе where. Это в основном так же, как вы бы сравнили два объекта DateTime в другом месте.
using (DataContext context = new DataContext()) {
var query = from t in context.table
where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
select t;
}
Просто добавьте в LINQ To Entities вы должны сравнить с переменной. Пример:
DateTime lastMonth = DateTime.Today.AddMonths(-1);
using (var db = new MyEntities())
{
var query = from s in db.ViewOrTable
orderby s.ColName
where (s.StartDate > lastMonth)
select s;
_dsResults = query.ToList();
}
Если вы не хотите, чтобы ваш код, чтобы бросить
LINQ to Entities does not recognize the method 'System.DateTime AddYears(Int32)' method, and this method cannot be translated into a store expression.
Я предложил бы использовать DbFunctions.AddYears. Кроме того, если вы заинтересованы только о датах и не раз, вы могли бы использовать DbFunctions.TruncateTime
Что-то вроде this-
DbFunctions.TruncateTime(x.date) ==
DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))