2016-06-27 20 views
2

在.NET核心库的IQueryable排序依据表达它不允许使用表达式来调用IQueryable.OrderBy作为PARAM在.NET芯

这是代码的示例:

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" 
     } 
    } 
} 

任何想法?

回答

7

System.Linq.Expressions包含IQueryable<T>Expression<TDelegate>。但是,要使代码正常工作,还需要包含IQueryable LINQ扩展方法的类型:Queryable。此类型位于System.Linq.Queryable包中。

由于System.Linq.Queryable取决于System.Linq.Expressions,您可以用替换System.Linq.Expressions线在project.json:

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

谢谢!它现在可以工作(它向我添加了“System.Linq.Queryable”包:“4.0.0”,但也适用于...) – DaniCE