LINQ to Entities zum Abzug von 2 Datumsangaben

datetime entity-framework linq-to-entities

Frage

Ich versuche, die Anzahl der Tage zwischen zwei Terminen mithilfe von LINQ mit Entity Framework zu ermitteln. Es sagt mir, dass es Subtract in der System.TimeSpan-Klasse nicht erkennt

Hier ist mein wo Teil der LINQ-Abfrage.

where ((DateTime.Now.Subtract(vid.CreatedDate).TotalDays < maxAgeInDays))

Hier ist der Fehler, den ich im VS.NET-Debugger erhalte

{"LINQ to Entities erkennt die Methode 'System.TimeSpan Subtract (System.DateTime)' nicht und diese Methode kann nicht in einen Speicherausdruck übersetzt werden."}

Mache ich etwas falsch oder gibt es einen besseren Weg, um die Anzahl der Tage zwischen 2 DateTimes im Entity-Framework zu ermitteln?

danke Michael

Akzeptierte Antwort

So habe ich es zum Laufen gebracht

Ich habe eine Datum / Uhrzeit-Variable definiert, die das älteste Datum darstellt

DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...

dann habe ich den where-Teil der LINQ-Abfrage geändert

where (vid.CreatedDate >= oldestDate )

funktionierte wie ein Zauber - Danke Micah, dass ich über den Ausdrucksbaum nachgedacht habe


Beliebte Antwort

Die akzeptierte Antwort ist in diesem Fall besser, aber als Referenz können Sie die EntityFunctions Klasse verwenden, um unter anderem Vorgänge an Datumsangaben auszuführen.

where (vid.CreatedDate >= EntityFunctions.AddDays(DateTime.Now, -maxAgeInDay))


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum