7
votes

Cadre d'entité - Condition sélective sur la propriété de navigation incluse

suppose que j'ai ces entités générées par EF simplifiées ... strong> xxx pré>

logique commerciale: strong> p>

La commande peut avoir plusieurs POS, une pour chaque fournisseur distincte de la commande (les fournisseurs sont déterminés au niveau de l'article). P>

Comment puis-je inclure sélectivement des entités enfants? strong> p> p>

Lors de la requête pour POS, je souhaite inclure automatiquement les enfants impliqués pour la commande et l'élément. p>

i y accomplit, à l'aide d'inclure () ... p>

Context.PurchaseOrders.Include("Orders.Items");


0 commentaires

3 Réponses :


4
votes

Vous ne pouvez pas retirer de manière sélective certaines entités d'enfants qui correspondent à une certaine condition. Le mieux que vous puissiez faire est de filtrer manuellement les commandes pertinentes vous-même.

public class PurchaseOrder
{
     public int POID {get;set;}
     public int OrderID {get;set;}
     public int VendorID {get;set;}
     public IEnumerable<Order> Orders {get;set;}

     public IEnumerable<Order> MatchingOrders {
         get {
            return this.Orders.Where(o => o.VendorId == this.VendorId);
         }
     }
}


2 commentaires

J'espère voir cela comme une amélioration de la fonctionnalité à l'avenir.


Plus de cinq ans et toujours rien ... étonnant, pas mal pour l'une des caractéristiques les plus utiles pourraient avoir ... -.-'- '



4
votes

vous ne pouvez pas. EF n'autorise pas les conditions de chargement impatient. Vous devez soit utiliser plusieurs requêtes telles que: xxx

ou vous pouvez utiliser la projection dans une requête unique: xxx


0 commentaires