2017-06-07 45 views
0

这是我的原始数据为什么在SQL查询结果和Linq结果中使用不同的函数不同?

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

那根据你输入的内容,SQL Query应该只返回类别。我不相信结果符合您的查询。 – Reisclef

+0

为什么在你的SQL中选择不同的[类别]返回那么多其他列,你没有把你运行的实际查询。 –

+3

另一个'Soccer'在它后面有一个空格'Soccer' – Stefan

回答

2

在类别的末尾有时候会有空格。你不应该存储它们。你可以用Trim修复它在SELECT查询:

IEnumerable<string> categories = repository.Products 
        .Select(x => x.Category.Trim()) 
        .Distinct();  

但不是存储类别为您的产品表中的字符串冗余,你应该在这里有一个外键到另一个表Category >>Database normalization

+0

是的,你是SPACE ... thx很多 – square

相关问题