Je m'excuse pour les erreurs de syntaxe, c'est ma simple explication du problème.Comment filtrer correctement les objets enfants?
J'ai configuré mon fichier dbml avec une relation entre Customers et Orders sur CustomerId. J'essaie de retourner toutes les commandes pour un client qui sont moins de 10 $.
Customer customer = context.Customers.FirstOrDefault(c => c.Id == 123);
IEnumerable<Order> orders = customer.Orders.Where(o => o.Total < 10);
Cela prend pour toujours parce que lorsque les commandes obtient dénombrées, le SQL généré ne tient pas compte de la clause where, tire 1000s des dossiers, puis en mémoire, filtre les commandes en fonction de la clause where.
Comment puis-je configurer ceci afin qu'il génère une requête qui filtre les commandes sur le serveur?
+1 Vous serez surpris par l'augmentation des performances que vous obtenez en créant des requêtes qui peuvent être efficacement traduites en SQL. :) – leppie
Je suis complètement d'accord. Ça craint parce que j'installe toutes ces relations dans mon dbml et tous ceux qui retournent des enfants avec de grandes quantités d'enregistrements ne valent rien parce que je dois les retourner tous avant de pouvoir les filtrer. Merci pour la contribution. –