Inspiré par la vitrine MVC, le dernier projet sur lequel je travaille utilise des méthodes d'extension sur IQueryable pour filtrer les résultats.Les méthodes d'extension ne fonctionnent pas pour une interface
J'ai cette interface;
IPrimaryKey
{
int ID { get; }
}
et moi avons cette méthode d'extension
public static IPrimaryKey GetByID(this IQueryable<IPrimaryKey> source, int id)
{
return source(obj => obj.ID == id);
}
Disons que j'ai une classe, SimpleObj qui implémente IPrimaryKey. Lorsque j'ai un IQueryable de SimpleObj la méthode GetByID n'existe pas, à moins que j'exécute explicitement comme IQueryable de IPrimaryKey, ce qui n'est pas idéal.
Ai-je oublié quelque chose ici?
Excellent - J'ai unaccepted la réponse originale. Je vais essayer ça demain. Merci à vous deux. – Kirschstein
Je voudrais juste dire que ma réponse n'était pas fausse, c'était la raison pour laquelle son code ne fonctionnait pas, je n'ai juste pas pris le temps de trouver une solution. Up a voté votre meilleure réponse. –
Juste un point très mineur: il faut GetByID (ce IQueryable source ... –
Kirschstein