2013-09-10 3 views
0

У меня есть запрос, который я хочу, чтобы вернуть список объектов типа tblcours, как такLinq к Entities Группировать Заказывайте не работает

public IList<tblcours> GetAllLiveCoursesByUnitID(int id) 
{ 
    Expression<Func<tblcours, bool>> predicate = x => x.tblCourseCategoryLinks.Any(cl => cl.tblUnitCategory.tblUnit.unitID == id); 
    int headingId = 180; 

    var distinctResult = from c in _UoW.tblcoursRepo.All 
          .Where(c => c.MainHeadingID != headingId) 
          .Where(predicate) 
          group c by c.MainHeadingID into uniqueIds 
          select uniqueIds.FirstOrDefault(); 

    return distinctResult.ToList(); 

} 

Что этот запрос делает, получает список объектов типа tblcours, а затем удалять повторяющиеся записи с тем же MainHeadingID. Это хорошо работает, однако мне также нужно, чтобы возвращаемые данные были в алфавитном порядке, однако, независимо от того, что я пытаюсь, я не могу этого сделать.

До сих пор я попытался следующие

distinctResult.OrderBy(c => c.CourseTitle); 
return distinctResult.ToList(); 

Но это никогда не работает, он просто продолжает возвращать список маркированного.

Не могли бы вы помочь мне с этим?

Благодарим за помощь.

ответ

3

Попробуйте это:

distinctResult= distinctResult.OrderBy(c => c.CourseTitle); 
return distinctResult.ToList(); 

потому что OrderBy возвращается упорядоченный перечислимы в here is said. Заказ - это не сборка модений.

Я настоятельно рекомендую использовать ReSharper, он будет ловить такие вещи и предупредить вас

2

Вы должны использовать возвращаемое значение из OrderBy:

return distinctResult.OrderBy(c => c.CourseTitle).ToList(); 

OrderBy не заказывает distinctResult на месте. Вместо этого он возвращает новое перечислимое, которое упорядочено.

Смежные вопросы