【问题标题】:Cannot implicitly convert type ‘System.Linq.IQueryable’ to ‘System.Collections.Generic.IEnumerable’无法将类型“System.Linq.IQueryable”隐式转换为“System.Collections.Generic.IEnumerable”
【发布时间】:2019-08-14 10:21:53
【问题描述】:

我正在尝试使用给定的关键字搜索产品名称,但我的样板文件抛出了错误

我试过了

protected override IQueryable<Product> CreateFilteredQuery(PagedProductResultRequestDto input)
{
    return base.CreateFilteredQuery(input).
        WhereIf(input.Keyword.IsNullOrWhiteSpace(), x => x.Name.Contains(input.Keyword));
}

给我错误

无法将类型“System.Linq.IQueryable”隐式转换为 'System.Collections.Generic.IEnumerable'。显式转换 存在(您是否缺少演员表?)

【问题讨论】:

  • 错误告诉你问题以及如何解决它。
  • 尝试以 IQueryable 的形式返回。这将起作用
  • 类似 return YourResult as IQueryable

标签: asp.net boilerplate abp


【解决方案1】:

修复您的 using 指令。

// using Abp.Collections.Extensions; // EnumerableExtensions.WhereIf returns IEnumerable<T>
   using Abp.Linq.Extensions;        // QueryableExtensions.WhereIf returns IQueryable<T>

【讨论】:

    【解决方案2】:
    protected IQueryable<Product> CreateFilteredCategory(Collection<Product> input)
        {
            return input.Where(x => x.ProductName.Contains("Test")).AsQueryable<Product>();
        }
    

    类不完全相同,但前提是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多