我有一本lambda表达词典:
private readonly Dictionary<SortSpec, Func<IQueryable<CompanyData>, IQueryable<CompanyData>>> _sortHelp =
new Dictionary<SortSpec, Func<IQueryable<CompanyData>, IQueryable<CompanyData>>>()
{
{ SortSpec.ByIsSomethingASC, (i => i.OrderBy(j => j.Whatever)) },
{ SortSpec.ByIsSomethingDESC, (i => i.OrderByDescending(j => j.Whatever)) },
{ SortSpec.ByNameDESC, i => i.OrderByDescending(j => j.Name)}
//...
}
现在,我希望能够
IQueryable<CompanyData> withOrder = _sortHelp[sortSpec](querySoFar);
并获取一个IQueryable,稍后将转换为正确的sql语句。
然而,这不起作用。 我尝试过使用表达式,但我似乎错过了一些东西。 那么,我如何将这样的函数应用于IQueryable?