Sto cercando di determinare il numero di giorni tra 2 date utilizzando LINQ con Entity Framework. Mi sta dicendo che non riconosce Sottrai nella classe System.TimeSpan
Ecco la parte in cui è presente la query LINQ.
where ((DateTime.Now.Subtract(vid.CreatedDate).TotalDays < maxAgeInDays))
Ecco l'errore che ricevo nel debugger di VS.NET
{"LINQ to Entities non riconosce il metodo 'System.TimeSpan Sottrai (System.DateTime)' e questo metodo non può essere tradotto in un'espressione di archivio."}
Sto facendo qualcosa di sbagliato o c'è un modo migliore per ottenere il numero di giorni tra 2 DateTimes nel framework entità?
grazie Michele
Ecco come ho potuto farlo funzionare
Ho definito una variabile datetime che rappresenta la data più vecchia
DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...
poi ho modificato la parte where della query LINQ
where (vid.CreatedDate >= oldestDate )
ha funzionato come un incantesimo - grazie Micah per avermi fatto riflettere sull'albero delle espressioni
La risposta accettata è migliore in questo caso, ma per riferimento è possibile utilizzare la classe EntityFunctions
per eseguire operazioni sulle date, tra le altre cose.
where (vid.CreatedDate >= EntityFunctions.AddDays(DateTime.Now, -maxAgeInDay))