nopCommerce IProductService返回IList而不是IQueryable

时间:2012-08-31 00:05:09

标签: c# nopcommerce

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接口执行此操作。

有没有一种简单的方法可以做这样的事情?

1 个答案:

答案 0 :(得分:0)

这是可能的。

示例:

var products = _productService.GetAllProducts().Where(p => p.CreatedOnUtc > DateTime.UtcNow.AddDays(-5));