2013-12-10 64 views
0

使用时,我知道这应该是一个解决问题,但我不能让记录的解决方案,为我工作顺序按不起作用。下面的代码是假设通过在独特之后执行顺序,但它不是。我提到了这个帖子:LINQ to SQL does not generate ORDER BY when DISTINCT is used?VB LINQ:有鲜明

fyMonth = (From f In DbContext.FYMonth 
      Select f.Month).Distinct().OrderBy(Function(n) n).ToList() 

我得到一个错误,当我尝试:

OrderBy(Function(n) n.SortOrder) 

任何想法?

+0

什么是错误? –

+2

哦,你不能在orderby中使用n.SortOrder,因为你没有将它包含在你的结果集中......你只选择Month。 –

回答

1

您的查询选择个月,你得到不同个月。一个月不包含SortOrder属性,您不再有权访问您的FYMonth对象上的该属性。您需要将SortOrder包含到投影中,然后将其分类,然后重新投影到月份。

fyMonth = DbContext.FYMonth 
    .Select(Function(x) New With { x.Month, x.SortOrder }) 
    .Distinct 
    .OrderBy(Function(x) x.SortOrder) 
    .Select(Function(x) x.Month) 

这假设每个月的SortOrder在所有月份都是相同的。