Я пытаюсь инкапсулировать IQuerable в свой собственный общий класс, а затем выполнить Select() на этом с помощью моего собственного метода Select(), но я не могу заставить его работать. ..Как использовать IQuerable.Select в моем собственном классе
у меня есть это: (не реальный рабочий код еще)
public class PagedSpQuery<T>
{
private IQueryable<T> q = null;
public PagedSpQuery(MyContext DB)
{
q = DB.MyEntity.SqlQuery("select * from MyTable").AsQuerable();
}
public IQueryable<T> Select<T>(Expression<Func<T, T>> selector)
{
return q.Select(selector);
}
}
Я получаю ошибку на q.Select(selector);
Он не будет принимать параметр ..
я могу следовать за этим Проблема некоторые пути, но я не могу понять, как заставить это работать, если это возможно, в любом случае ..
Любые идеи будут оценены ..
спасибо ..
IQueryable * является * общим, как IEnumerable или LINQ, он не привязан к Entity Framework. Фактически, он предназначен для * инкапсуляции * запрашиваемых поставщиков. Почему вы думаете, что вам нужно инкапсулировать его самостоятельно, тем более, что вы в конечном итоге используете тот же синтаксис? –
Какой смысл в селекторе, который возвращает тот же тип? Вы мутируете входы или создаете _new_ объекты на основе коллекции ввода? –