2014-02-10 4 views
0

Я новичок и пытаюсь создать веб-сайт, у меня есть простой элемент управления CheckBoxList на странице, на которой в настоящий момент отображаются некоторые данные категории. Однако я хочу уменьшить записи, которые нужно сгруппировать по полю в пределах данных, называемых «CategoryType».Simple CheckBoxList отображает иерархию модели не значения

код ASPX:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" SelectMethod="GetCategories"> /asp:CheckBoxList> 

aspx.cs код:

public IQueryable<Category> GetCategories() 
{ 
    var _db = new YPGOOS2.Models.YPGOOSDataContext(); 
    IQueryable<Category> query = _db.Categories; 
    return query; 
} 

У меня есть таблица под названием "Категории" в базе данных и класс DataContext называется YPGOOSDataContext.cs, который включает в себя:

public DbSet<Category> Categories { get; set; } 

Все, что я хочу сделать, это положить в groupby предложение, которое группирует по типу CategoryType, чтобы я мог отображать эти данные в CheckBoxList.

я могу ввести последующее заявление OrderBy что сортирует данные правильно ...

query = query.OrderBy(ob=>ob.CategoryType); //this sorts by CategoryType correctly 

... Однако, когда я пытаюсь следующее не работает ...

query = query.GroupBy(gb => gb.CategoryType); //can't get the GroupBy to work!! 

Пожалуйста помоги.

ответ

1

попробовать ниже

query = query.GroupBy(gb => gb.CategoryType).Select(x => x.FirstOrDefault()); 

GroupBy непосредственно не возвращать IQueryable<Category>, вам нужно построить его в зависимости от ваших требований

+0

Удивительного спасибо @Damith, который работал с небольшими изменениями ... запросом = запрос. GroupBy (gb => gb.CategoryType). Выберите (x => x.FirstOrDefault()); – skella

+0

@skella FirstOrDefault будет более подходящим. – Damith

+0

Хммм, мне кажется, что я получаю красную squiggly строку под _db.Categories и следующую ошибку при запуске этого кода «Невозможно неявно преобразовать тип» System.Data.Entity.DbSet 'to' System .Linq.IQueryable '. Явное преобразование существует (вы пропускаете листинг?) Кто-нибудь знает, что это такое? – skella

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