2009-08-24 6 views
0

Pour mon référentiel utilisant le framework d'entité, j'utilise la méthode suivante pour renvoyer un IList.Conserver mon référentiel générique à l'aide de createquery

public virtual IList<TEntity> ToList(Func<TEntity, bool> expression) 
{ 
    return Context.CreateQuery<TEntity>("[" + EntitySetName + "]") 
             .Where<TEntity>(expression).ToList(); 
} 

Le paramètre d'expression me permet de modifier le résultat, mais ce n'est pas conforme à mes attentes. Puisque createquery est d'abord évalué et après mon where est appliqué. Je l'utilise avec des tables de plus de 2 mil. enregistrements.

Est-ce que quelqu'un a une solution pour garder la méthode générique, mais avec la facilité de contrôler le résultat sans charger tous les enregistrements en premier?

Répondre

2

Vous devez changer le type de votre argument à celui qui peut être converti en SQL:

public virtual IList<TEntity> ToList(Expression<Func<TEntity, bool>> expression) 

Notez l'expression.

+0

Salut Craig, ça marche! Merci! – madC

Questions connexes