如何将表达式应用于实体框架的IQueryable?

时间:2017-08-29 13:55:55

标签: c# entity-framework lambda expression iqueryable

我有一本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?

0 个答案:

没有答案