Нужна помощь в формировании выражения LINQ to SQL - PullRequest
0 голосов
/ 25 февраля 2011

Получил таблицу с именами столбцов как таковыми

Name | ProductID | Price | Category | SubCategory

Я передаю имя категории в метод действия и хочу вернуть имена подкатегорий, которые находятся в той же строке, что и имя категории, которое передается.

Так что-то вроде этого, кроме того, что это неправильно:

var subcategories = 
      productsRepository.Products
                        .Select(x => x.SubCategory.Where(x.Category == category);

Таким образом, я могу собрать отдельные имена подкатегорий с помощью:

foreach (string subcategoryName in subcategories.Distinct().OrderBy(x => x))

Спасибо.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Вы ищете:

var subcategories = productsRepository.Products
                                      .Where(x => x.Category == category)
                                      .Select(x => x.SubCategory)
                                      .Distinct()
                                      .OrderBy(x => x);

С другой стороны, похоже, что ваша база данных не нормализована.

0 голосов
/ 25 февраля 2011

Я не уверен, что полностью понимаю проблему, но не лучше ли сначала отфильтровать, а затем выбрать столбец?

var subcategories = 
      productsRepository.Products.Where(x=>x.Category==category)
                        .Select(x => x.SubCategory);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...