Quiero verificar si una fecha determinada es más de un mes anterior a la fecha de hoy usando LINQ.¿Cómo comparar las fechas en LINQ?
¿Cuál es la sintaxis para esto?
Gracias de antemano.
Quiero verificar si una fecha determinada es más de un mes anterior a la fecha de hoy usando LINQ.¿Cómo comparar las fechas en LINQ?
¿Cuál es la sintaxis para esto?
Gracias de antemano.
Supongo que está hablando en la cláusula where. Es básicamente de la misma manera que compararía dos objetos DateTime en otro lugar.
using (DataContext context = new DataContext()) {
var query = from t in context.table
where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
select t;
}
Solo para agregar, en LINQ To Entities tiene que comparar con una variable. Ejemplo:
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();
}
Si no desea que su código para lanzar
LINQ to Entities does not recognize the method 'System.DateTime AddYears(Int32)' method, and this method cannot be translated into a store expression.
se recomienda usar DbFunctions.AddYears. Además, si usted se preocupa sólo de fechas y no las veces, usted podría utilizar DbFunctions.TruncateTime
Algo como esto:
DbFunctions.TruncateTime(x.date) ==
DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))