不能列出几个Id

时间:2015-04-15 15:49:28

标签: c# asp.net-mvc-4

您好我有1个项目表供所有项目使用,1个ProjectsManager表供管理者使用。所以我试图获取已登录的成员ID并在经理表中找到他/她,然后列出他/她正在管理的项目。这是代码;

此代码用于在管理器表中查找记录的成员;

 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并列出?

我稍微更改了代码,因此我可以获得多个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)

1 个答案:

答案 0 :(得分:0)

如果ProjectManagerForProject是ID列表,则无法执行此行代码:

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

而是执行以下操作

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