2008-10-18 106 views

Respuesta

29

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; 
} 
5

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(); 
     } 
0

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)) 
Cuestiones relacionadas