Проблема с отображением различных полей с помощью Linq - PullRequest
0 голосов
/ 24 ноября 2011
        var getAllProducts = _productService.GetAllProducts();      
        if (productstest.Count > 0)
        {
            model.idproduct.Add(new SelectListItem()
            {
                Value = "0",
                Text = _localizationService.GetResource("Common.All")
            });
            foreach (var m in getAllProducts)
                model.idproduct.Add(new SelectListItem()
                {
                    Value = m.Id.ToString(),
                    **Text = m.Size.Distinct().ToString(),**
                    Selected = model.Pid == m.Id

                });
        }

   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;
    }

Проблема даже в том, что я пытался заполнить список выбора другим размером, используя: Text = m.Size.Distinct (). ToString (), но он показывает дубликат, например, 100 продуктов имеют размер 33 см, список будет заполнять выпадающий список в представлении с 33 см, происходящих 100 раз, я не хочу показывать 100 раз, просто хочу показать 1 раз, Может ли кто-нибудь помочь мне с этой проблемой?

1 Ответ

0 голосов
/ 24 ноября 2011

Предположительно, вы пытаетесь показать только один продукт каждого разного размера ... если это так, инициализация вашей переменной getAllProducts, как это будет сделано:

var getAllProducts = _productService.GetAllProducts().GroupBy(p => p.Size).Select(g => g.First());
...