Entity Framework Filter "Expression & lt; Func & lt; T, bool & gt; & gt;"

Je suis en train de créer une méthode de filtrage pour Entity framework Liste et de mieux comprendre la Expression<Func<...

J'ai une Fonction de Test de ce genre.

public IQueryable<T> Filter<T>(IEnumerable<T> src, Expression<Func<T, bool>> pred)
{
    return src.AsQueryable().Where(pred);
}

et si je fais ceci:

context.Table.Filter(e => e.ID < 500);

ou ceci:

context.Table.Filter(e => e.SubTable.Where(et => et.ID < 500).Count() > 0 && e.ID < 500);

que tout cela fonctionne bien.

Mais si je fais cela:

context.Table.Filter(e => e.SubTable.Filter(et => et.ID < 500).Count() > 0 && e.ID < 500);

ou ceci:

context.Table.Where(e => e.SubTable.Filter(et => et.ID < 500).Count() > 0 && e.ID < 500);

Je reçois un message d'erreur. LINQ to Entities does not recognize the method ...Filter...

Pourquoi il fonctionne dans un cas et pas dans l'additionneur? Que dois-je changer dans le Filtre pour qu'il fonctionne avec les tables liées.
Je préfère rester à l'écart de bibliothèque externe est aussi ce que je veux, c'est apprendre comment il fonctionne et être capable de l'utiliser dans n'importe quel scénario dans l'avenir.

Dans les deux premiers cas, l'exécution du filtre dans la base de données correctement.

source d'informationauteur Pedro.The.Kid