Soit la méthode de ma couche business suivante:

IQueryable<Customer> GetCustomers() { return from c in dc.Customers select c; }

J'aimerai fournir à ma couche présentation l'accès à cette méthode afin d'offrir la possibilité de lister le clients venant de la base.
Juste là, un besoin tout à fait légitime :p.

le problème est que ma couche de présentation va pouvoir écrire ceci:

var q = from c in GetCustomers() where (c.City == "London") select c;

Et je ne veux pas de cette possibilité car cette écriture va générer une nouvelle requête sql et je ne veux pas que ma couche présentation en soit capable. Je veux bien de la notion de filtre (where) mais en mémoire uniquement sans que cela modifie la requête sql que seule la couche business doit être capable de définir.

Comment faire ?

Mitsu

[Update] : Délégation d'implémentation d'interface: réponse au Quizz
[Update] Quizz suivant: Geek Quizz III: subtilités dans les conversions