2

nopCommerce の ProductService クラスには、すべての製品を含む IList を返すメソッド GetAllProducts があります。

代わりに 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 インターフェイスを介してこれを行う方法がわかりません。

このようなことを行う簡単な方法はありますか?

4

1 に答える 1

0

それが可能だ。

例:

var products = _productService.GetAllProducts().Where(p => p.CreatedOnUtc > DateTime.UtcNow.AddDays(-5));
于 2012-09-06T13:26:26.317 に答える