Вдохновленный витриной MVC, последний проект, над которым я работаю, использует методы расширения в IQueryable для фильтрации результатов.
У меня есть этот интерфейс;
IPrimaryKey
{
int ID { get; }
}
и у меня есть этот метод расширения
public static IPrimaryKey GetByID(this IQueryable<IPrimaryKey> source, int id)
{
return source(obj => obj.ID == id);
}
Допустим, у меня есть класс SimpleObj, который реализует IPrimaryKey. Когда у меня есть IQueryable из SimpleObj, метод GetByID не существует, если только я явно не приведу его как IQueryable из IPrimaryKey, что не идеально.
Я что-то здесь упускаю?