2009-03-13 6 views
2

En utilisant le framework d'entité, j'essaie de récupérer un client avec les détails de la commande, mais je souhaite filtrer les commandes actives.Utilisation d'ObjectQuery Inclure et utiliser une clause where imbriquée

Le client est notre entité EntityObject qui possède une collection d'objets EntityObjects. CustomerDetails est notre ObjectContext.

Le code ci-dessous va joindre toutes les commandes, mais je veux filtrer et seulement attacher ceux qui sont actifs. (Order.active == true). Comment puis-je faire ceci?

Je sais Inclure édifie une instruction de requête imbriquée (je peux observer à l'aide .ToTraceString().) J'espérais joindre une clause Where à cette instruction select imbriquée ou Inclure.

  Customer cust; 
     CustomerDetails custTable = new CustomerDetails(); 


     cust = custTable.Customer 
      .Where("it.cust_id = " + id) 
      .Include("Order") // But we only want Order.active == true!!! 
      .ToList().First(); 

Répondre

0

Non testé, mais pourrait fonctionner?

var temp = custTable.Customer.Where("it.cust_id = " + id).Include("Order"); 
cust = (from t in temp 
     where t.Order.active == true 
     select t).ToList().First(); 
Questions connexes