.NET 核心中的 IQueryable OrderBy 表达式

IQueryable OrderBy expression in .NET core

在 .Net 核心库中,它不允许使用表达式作为参数

调用 IQueryable.OrderBy

这是代码示例:

public class Elem
{
    public string Id { get; set; }
    public static IQueryable<Elem> SortById(IQueryable<Elem> paramSequence)
    {
        return paramSequence.OrderBy(x => x.Id);  //this gives error
    }
}

我添加了 System.Linq.Expression 包。这是我的项目文件:

{
    "version": "1.0.0-*",
    "dependencies": {
        "NETStandard.Library": "1.5.0-rc2-24027",
        "System.Linq.Expressions": "4.0.10"
    },

    "frameworks": {
        "netstandard1.5": {
            "imports": "dnxcore50"
        }
    }
}

有什么想法吗?

软件包 System.Linq.Expressions 包含 IQueryable<T>Expression<TDelegate>。但是为了使您的代码正常工作,您还需要包含 IQueryable LINQ 扩展方法的类型:Queryable。这种类型在 System.Linq.Queryable 包中。

由于 System.Linq.Queryable 依赖于 System.Linq.Expressions,您可以将 project.json 中的 System.Linq.Expressions 行替换为:

"System.Linq.Queryable": "4.0.1-rc2-24027"