Je dois renvoyer une liste des éléments de ma base de données qui expire à une heure prédéfinie à la date fournie par l'élément. Mon erroné code 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 CreateDateTime method.
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)
Mise à jour:
Lorsque vous utilisez EF6, utilisez DbFunctions à la place.
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)