2010-09-14 13 views
0

J'essaie de faire un chargement impatient sur une entité EF.Besoin d'aide pour essayer de charger des données dans EntityFramework

donc, si l'entité est appelée Orders .. alors je suppose que je devrais faire ce qui suit ...

_someContext.Orders.Include("Whatever") ....

Mais le problème est, j'ai une méthode comme suit ...

public IQueryable<Order> Find(Expression<Func<Order, bool>> predicate) 
{ 
    return CurrentContext.Orders.Where(predicate); 
} 

qui fonctionne très bien .. mais je peux tirer parti de la Expression principale à inclure le Include("whatever") là-dedans, au lieu d'avoir à ajouter un autre paramètre de méthode?

Répondre

0

Je ne pense pas. Depuis le prédicat et ObjectQuery.Where Method en général n'a rien à voir avec le chargement désireux par Inclure. Vous pouvez créer une méthode d'extension bien, mais cela ne vous sauvera pas d'avoir encore un autre paramètre pour spécifier l'include: il y a

public IQueryable<Order> Find(Expression<Func> predicate, string include) { 
    return CurrentContext.Orders.Where(predicate, include); 
} 

public static ObjectQuery<T> Where<T>(this ObjectQuery<T> entity, Expression<Func<T, bool>> predicate, string include) { 
    return (ObjectQuery<T>)entity.Include(include).Where<T>(predicate); 
} 
+0

Oui -Ce était ce que je l'ai fait quelques heures .. sorta. Je n'ai pas pris la peine d'utiliser la méthode d'extension, mais j'ai simplement ajouté un autre paramètre string [] includeAssociations à ma méthode Find (..). –