Cela repousse probablement un peu les limites de Linq-to-Sql, mais étant donné la polyvalence de cette requête, je pensais que je le ferais.Passage d'une clause WHERE pour une requête Linq-to-Sql en tant que paramètre
J'ai 3 requêtes qui sélectionnent des informations identiques et ne diffèrent que dans la où clause, maintenant je sais que je peux passer un délégué mais cela ne me permet que de filtrer les résultats déjà retournés, mais je veux construire la requête via paramètre pour assurer l'efficacité.
Voici la requête:
from row in DataContext.PublishedEvents
join link in DataContext.PublishedEvent_EventDateTimes
on row.guid equals link.container
join time in DataContext.EventDateTimes on link.item equals time.guid
where row.ApprovalStatus == "Approved"
&& row.EventType == "Event"
&& time.StartDate <= DateTime.Now.Date.AddDays(1)
&& (!time.EndDate.HasValue || time.EndDate.Value >= DateTime.Now.Date.AddDays(1))
orderby time.StartDate
select new EventDetails
{
Title = row.EventName,
Description = TrimDescription(row.Description)
};
Le code que je veux appliquer via un paramètre serait:
time.StartDate <= DateTime.Now.Date.AddDays(1) &&
(!time.EndDate.HasValue || time.EndDate.Value >= DateTime.Now.Date.AddDays(1))
Est-ce possible? Je ne pense pas que ce soit mais je pensais d'abord vérifier.
Merci
Ah, cela semble faisable, je vais essayer, merci. – Mantorok