我希望这不是一个太基本的问题--我看过类似的问题,但似乎无法理解,所以我寻求帮助。
我正在使用一个存储库模式,我想让它成为泛型--下面是我为泛型准备的:
static public IQueryable<T> Get(Func<IQueryable<T>> pred, uint page=0, uint pageSize=10)
{
return pred()
.Skip((int)(page * pageSize))
.Take((int)pageSize);
}
所以我想调用它,但是得到一个“有无效的参数”,不管我尝试什么lambda。
如果我声明一个返回IQueryable的方法,并将其作为第一个参数传递,那么它就可以工作--没有编译错误。我被难住了。
请帮帮忙?用lambda调用它的正确方式是什么?或者,如果我的泛型出了问题,如何最好地声明它?我认为返回IQueryable的Func是最好的。
发布于 2011-09-09 16:09:03
通常,您只需获取IQueryable<T>
并直接使用它,而不是接受Func<IQueryable<T>>,
。
static public IQueryable<T> Get<T>(IQueryable<T> source, uint page=0, uint pageSize=10)
{
return source
.Skip((int)(page * pageSize))
.Take((int)pageSize);
}
发布于 2011-09-09 10:32:36
Get缺少T泛型
static public IQueryable<T> Get<T>(Func<IQueryable<T>> pred, uint page = 0, uint pageSize = 10)
{
return pred()
.Skip((int)(page * pageSize))
.Take((int)pageSize);
}
https://stackoverflow.com/questions/7360270
复制