Ich möchte überprüfen, ob ein bestimmtes Datum mehr als einen Monat früher als das heutige Datum mit LINQ ist.
Wie lautet die Syntax dafür?
Vielen Dank im Voraus.
Ich möchte überprüfen, ob ein bestimmtes Datum mehr als einen Monat früher als das heutige Datum mit LINQ ist.
Wie lautet die Syntax dafür?
Vielen Dank im Voraus.
Ich gehe davon aus, dass Sie von der Where-Klausel sprechen. Es ist im Grunde die gleiche Art und Weise Sie zwei DateTime-Objekte anderswo vergleichen würde.
using (DataContext context = new DataContext()) {
var query = from t in context.table
where t.CreateDate.Date < DateTime.Today.AddMonths(-1)
select t;
}
Nur um hinzuzufügen, in LINQ To Entities müssen Sie mit einer Variablen vergleichen. Beispiel:
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();
}
Wenn Sie nicht wollen, dass Ihr Code einen
LINQ to Entities does not recognize the method 'System.DateTime AddYears(Int32)' method, and this method cannot be translated into a store expression.
Ich würde vorschlagen, DbFunctions.AddYears zu verwenden. Wenn es Ihnen nur um das Datum und nicht um die Uhrzeit geht, können Sie auch DbFunctions.TruncateTime verwenden.
Etwa so.
DbFunctions.TruncateTime(x.date) ==
DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.