2015-04-15 2 views
1

Привет У меня есть таблица 1 проектов для всех проектов, а также 1 таблица ProjectsManager для менеджеров. Поэтому я пытаюсь получить зарегистрированный идентификатор участника и найти его/ее в таблице менеджеров, а затем перечислить проекты, которые он/она управляет. вот код;Невозможно перечислить по нескольким идентификаторам

этот код для поиска зарегистрированного участника в таблице менеджеров;

var ProjectManagerForProject = Db.MyManagers.Where(o => o.ProjectManagerID.Equals(LoggedMember.Id)).Select(o=>o.Project.Id).FirstOrDefault(); 

и код для создания списка для зарегистрированного участника;

var model = new ProjectsModel 
     { 


      ItemsPerPage = itemsPerPage, 
      Page = S, 
      TotalItems = Db.MyProjects.Count(), 
      OurProjects = Db.MyProjects.OrderBy(o => o.Sira).Where(o=>o.Id.Equals(ProjectManagerForProject)).Skip((S - 1) * itemsPerPage).Take(itemsPerPage) 
      .Select(s => new ProjectsModel.TheProjects 
      { 
       Id = s.Id, 
       ProjectName = s.ProjectName, 
       PhaseCount = (short)Db.MyPhases.Where(p => p.Project.Id == s.Id).Count(), 
       ProjectOwner=s.ProjectOwner, 
       Priority=(PriorityForProject)s.Priority, 
       StartDate=s.StartDate, 
       EndDate=s.EndDate, 
      }) 
     }; 

Если я это сделаю, я получаю 1 проект Id и список 1 проекта, но у менеджера есть несколько проектов. Я пытаюсь получить как список с toList(); конец ProjectManagerForProject

Но тогда я получаю null и эту ошибку; Cannot compare elements of type System.Collections.Generic.List1. Only primitive types, enumeration types and entity types are supported.

Как я могу получить несколько идентификаторов и перечислить их?

Я немного изменил код, чтобы получить несколько ID;

var ProjectManagerForProject = Db.MyManagers.OrderBy(o=>o.Id).Where(o => o.ProjectManagerID.Equals(MevcutUye.Id)).Select(o=>o.Project.Id).ToList(); 

но не может перечислить одну и ту же ошибку, но для этого;

@foreach (var item in Model.OurProjects) 

ответ

0

Вы не можете сделать эту строку кода, если ProjectManagerForProject является списком идентификаторов:

.Where(o=>o.Id.Equals(ProjectManagerForProject)) 

вместо сделать следующее

.Where(o => ProjectManagerForProject.Contains(o.Id)) 
+0

да я пытался использовать содержит, но не смогло выяснить это как. большое спасибо –

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