我试图将IQuerable封装在我自己的泛型类中,然后通过我自己的Select()方法对此执行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);
它不接受参数..
我可以在某种程度上遵循这个问题,但是如果可能的话,我无法理解如何让它发挥作用..
任何想法都会受到赞赏..
谢谢..
答案 0 :(得分:2)
您已将类定义为泛型,然后定义了一个重用类型参数T
的泛型函数,这会混淆conpiler。没有理由在函数中添加泛型参数,因此请将其取下:
public IQueryable<T> Select(Expression<Func<T, T>> selector)
{
return q.Select(selector);
}
但是你为什么要包装Linq方法呢?为什么不让类实现IQueryable<T>
并使用Linq的实现?