需要帮助形成LINQ to SQL表达式

时间:2011-02-25 06:36:37

标签: c# linq-to-sql

有一个包含列名的表

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 个答案:

答案 0 :(得分:1)

您在寻找:

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

另一方面,您的数据库似乎没有规范化。

答案 1 :(得分:0)

我不确定我是否完全理解这个问题,但是最初过滤然后选择列会不会更好?

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