Comparer les dates en utilisant LINQ to Entities (Entity Framework)

Je dois renvoyer une liste des éléments de ma firebase database qui expire à une heure prédéfinie à la date fournie par l’élément. Mon code erroné est le suivant:

return All().Where(o => new DateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now) 

L’erreur que je reçois est:

Seuls les constructeurs et les initialiseurs sans paramètre sont pris en charge dans LINQ to Entities

Est-ce que quelqu’un sait comment je peux résoudre ce problème?

Utilisez EntityFunctions à la place. Peut-être que la méthode CreateDateTime .

Alors peut-être comme ça:

 return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now) 

Mettre à jour:

Lorsque vous utilisez EF6, utilisez plutôt DbFunctions .

Vous pouvez utiliser:

 var result = await db.Articles .Where(TruncateTime(x.DateCreated) >= EntityFunctions.TruncateTime(DateTime.Now)) .ToListAsync(); 

Veuillez utiliser:

 return All().Where(o => EntityFunctions.CreateDateTime(o.expiry_date.Year, o.expiry_date.Month, o.expiry_date.Day, 17, 30, 0) >= DateTime.Now)