我正在做一些关于 EF 的研究,并遇到了一个接受的函数
Func<IQueryable<Student>, IOrderedQueryable<Student>>
只是想知道如何调用接受这种参数的函数?
我正在做一些关于 EF 的研究,并遇到了一个接受的函数
Func<IQueryable<Student>, IOrderedQueryable<Student>>
只是想知道如何调用接受这种参数的函数?
想象函数是这样的,并且您在 Student 类中有一个属性 Id 。
public static class Helper {
public static void Test(Func<IQueryable<Student>, IOrderedQueryable<Student>> param)
{
var test = 0;
}
}
那么你可以这样使用它
var student = new List<Student>().AsQueryable();//non sense, just for example
Helper.Test(m => student.OrderBy(x => x.Id));
m => student.OrderBy(x => x.Id)
是一个
Func<IQueryable<Student>, IOrderedQueryable<Student>>
(IQueryable<student>
作为参数,返回 a IOrderedQueryable<Student>
)
要不就
Helper.Test(m => m.OrderBy(x => x.Id));
事实上,如果没有“真正的”功能,这没有多大意义......
定义一个方法。
public IOrderedQueryable<Student> OrderingMethod(IQueryable<Student> query)
{
return query.OrderBy(student => student.Name);
}
现在这个赋值是合法的:
Func<IQueryable<Student>, IOrderedQueryable<Student>> orderingFunc = this.OrderingMethod;
现在您将它放在一个变量中,很容易将它传递给方法。
您也可以内联完成所有操作:
Func<IQueryable<Student>, IOrderedQueryable<Student>> orderingFunc =
query => query.OrderBy(student => student.Name);