Nối hai danh sách IEnumerable trong Sitecore GetQueryable

Nối hai IEnumerable trong

Hướng dẫn các bạn cách khi thực hiện context.GetQueryable trong Sitecore. Đề bài được đặt ra là nối hai danh sách sản phẩm mới với nhau.

Giả sử trong trường hợp sau:

Tôi có một danh sách:

  • Lấy 3 sản phẩm mới nhất là getNewProduct
  • Lấy 3 sản phẩm bán chạy nhất getTrendProduct

Yêu cầu hiển thị ra 6 sản phẩm từ 2 danh sách kia, nhưng bộ lọc lấy sản phẩm chỗ mỗi lần thì có câu query ContentSearchManager GetQueryable khác nhau và chỉ trả về được cho 1 model, do đó ta phải làm sao?

Cách làm:

Đầu tiên, bạn tạo 2 query để lấy các sản phẩm theo đề bài yêu cầu. Sau đó, tiến hành tạo một biến mới để nối hai danh sách lại với nhau.

Chúng ta sẽ sử dụng hàm trong , tạo một biến mới tên getListProduct và mã thực hiện như sau:

var getListProduct = getNewProduct.Concat(getTrendProduct);

Như vậy, cả hai danh sách IEnumerable đã được nối với nhau và lưu trong biến danh sách mới có tên getListProduct. Các element trong list getTrendProduct đã được nối theo sau list getNewProduct. Bây giờ, bạn có thể dùng foreach để in Model getListProduct ra 6 sản phẩm như yêu cầu của đề bài từ cùng 1 Model.

 

Xem thêm: Hướng dẫn Indexing manager trong Sitecore cho Search Solr

 

Bình luận Facebook