nopCommerce 中的 ProductService 类有一个 GetAllProducts 方法,它返回一个包含所有产品的 IList。
改为返回 IQueryable 不是更有意义吗?这样我就可以自己进一步过滤查询。
见下面的代码——
public virtual IList<Product> GetAllProducts(bool showHidden = false)
{
var query = from p in _productRepository.Table
orderby p.Name
where (showHidden || p.Published) &&
!p.Deleted
select p;
var products = query.ToList();
return products;
}
当 IQueryable 完全足够时,为什么要将其转换为列表?我无法理解这背后的原因。
鉴于这个特殊的限制,有没有办法在不修改 Nop.Services 代码的情况下解决这个问题?
例如,我想运行查询以获取过去 5 天内创建的所有产品。我看不到通过 IProductService 接口执行此操作的方法。
有没有一种简单的方法来做这样的事情?