je l'expression lambda suivante:Optimisation Lambda requête LINQ to SQL avec OrderBy
IEnumerable<Order> query
= _ordersRepository.GetAllByFilter(
o =>
o.OrderStatus.OrderByDescending(os => os.Status.Date).First()
.Status.StatusType.DisplayName != "Completed"
||
o.OrderStatus.OrderByDescending(os => os.Status.Date).First()
.Status.Date > sinceDate
).OrderBy(o => o.DueDate);
Comme vous pouvez le voir, je vais avoir à commander la collection deux fois dans la requête principale (donc trois fois au total) afin d'effectuer ma requête OR.
1) L'optimiseur de requête est-il assez intelligent pour gérer cela de manière efficace?
2) Si non, comment est-ce que je peux réécrire cette expression pour commander seulement une fois, mais maintenant avec la syntaxe lambda?
Ceci est lié à this previous question, ce qui explique la requête avec un peu plus de détails si le code ci-dessus n'est pas clair.
brillant, Take() est la clé! Je vous remercie – fearofawhackplanet