2015-03-23 3 views
1

Что не так с этим кодом?Невозможно неявно преобразовать тип 'System.Linq.IQueryable' в 'System.Collections.Generic.List'

List<CampaignManager_tbl> candidates = new List<CampaignManager_tbl>(); 

     candidates = from cat in db.Events_Category_tbl 
        join can in db.Candidates_Info_tbl on cat.events_category_id equals can.events_category_id 
        where cat.events_info_id == events.events_info_id 
        select new CampaignManager_tbl { 
         events_category_name = cat.events_category_name, 
         candidates_fullname = can.candidates_fullname, 
         candidates_place = can.candidates_place 
        }; 

     return View(candidates); 

Он работает, когда я запрашиваю только одну таблицу, используя этот метод, но когда я пытаюсь это сделать. Это не работает.

ответ

0

Вам необходимо преобразовать IQueryable в List. Вы можете сделать это, добавив .ToList() в конце вашего запроса Linq.

List<CampaignManager_tbl> candidates = new List<CampaignManager_tbl>(); 

candidates = (from cat in db.Events_Category_tbl 
        join can in db.Candidates_Info_tbl on cat.events_category_id equals can.events_category_id 
        where cat.events_info_id == events.events_info_id 
        select new CampaignManager_tbl { 
         events_category_name = cat.events_category_name, 
         candidates_fullname = can.candidates_fullname, 
         candidates_place = can.candidates_place 
        }).ToList(); 

return View(candidates); 
+0

также кандидат должен быть типа var ... – Mayank

+0

@Mayank Это не должно быть типа var. Это преобразование 'IQueryable ' в 'List '. – Loetn

+0

oh yaaa ... извините ... я не сосредоточился на первой строке ... спасибо @Loetn – Mayank

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