您好我有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)
答案 0 :(得分:0)
如果ProjectManagerForProject是ID列表,则无法执行此行代码:
.Where(o=>o.Id.Equals(ProjectManagerForProject))
而是执行以下操作
.Where(o => ProjectManagerForProject.Contains(o.Id))