私は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>
パラメータとして、を返します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);