IEnumerable 无法转换为 IQueryable

IEnumerable can't convert to IQueryable

到目前为止,我有一个 .net 4.7 库,我在其中以这种模式使用 IQuery:

IQueryable<MyType> myIQueryable = mySource;

if(paramIsNew != null)
{
    myIQueryable = myIQueryable.where(x => x.IsNew == paramIsNew);
}

更多参数和条件依此类推

但是,现在我正在尝试将此库转换为 .net 标准库,但出现无法将 IEnumerable 转换为 IQueryable 的错误,它存在并且是显式转换。

我没有真正看到问题以及如何解决它。

那是因为 Queryable class 和特定于可查询的扩展方法(如 Where)不是默认 .NET Standard 库的一部分。因此,您使用 Enumerable.Where 扩展方法,即 returns IEnumerable。您的 myIQueryableIQueryable 类型,因此您遇到了编译器错误。您需要安装 System.Linq.Queryable nuget 包,然后编译您的代码。