为什么在sql查询结果和Linq结果中使用不同的函数是不同的?

时间:2017-06-07 07:59:32

标签: c# sql asp.net asp.net-mvc

这是我的原始数据

enter image description here

LINQ代码

   public PartialViewResult Menu()
        {
            IEnumerable<string> categories = repository.Products
                        .Select(x => x.Category)
                        .Distinct();    
            return PartialView(categories.Distinct());
        }

LINQ结果

enter image description here

为什么使用不同的函数,LINQ有不同的结果

1 个答案:

答案 0 :(得分:2)

类别末尾有时会出现空格。你不应该存储它们。您可以使用Trim

在SELECT查询中修复它
IEnumerable<string> categories = repository.Products
                    .Select(x => x.Category.Trim())
                    .Distinct();    

但是,不是将类别作为字符串存储在您的产品表中,而是将外键添加到另一个表Category&gt;&gt; Database normalization