0

Я использую Entity Framework 5.0, и я хочу, чтобы вернуть список объектов, однако, я хочу, чтобы выполнить DISTINCT на одном из свойств по каждому объекту в пределах список.Linq к Entities Distinct на колонке без анонимного типа

Я знаю, что есть несколько вопросов, похожих на мои уже на Stackoverflow, однако я все еще борюсь с этим.

В настоящее время мой запрос выглядит следующим образом

public IList<tblcours> GetAllCoursesByOrgID(int id) 
{ 
    return _UoW.tblcoursRepo.All.Where(c => c.tblCourseCategoryLinks.Any(cl => cl.tblUnitCategory.tblUnit.ParentID == id)) 
      .OrderBy(c => c.CourseTitle) 
      .ToList(); 
} 

Однако, мне нужно выполнить DISTINCT на свойстве MainHeadingID удалить любые объекты, уже с тем же ID, , но по-прежнему возвращая весь объект со всеми его свойствами.

Предпочтительно, я хотел бы вернуться IList, как вы можете видеть из моего метода, и не анонимный тип.

Любая помощь с этим очень ценится.

Спасибо.

ответ

3

Вы пытались использовать GroupBy?

_UoW.tblcoursRepo.All.GroupBy(c => c.MainHeadingId) 
        .Select(g => g.FirstOrDefault()) 
+0

fyi: Производительность не будет хорошей, поскольку перевод на SQL ужасен. Но он работает так +1. – usr