2016-06-27 22 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