猿问

使用 LINQ 返回子对象

我正在学习 EF Core 和 LINQ 中的多对多联合表。我有以下模型:


    public class ProjectManager

    {

        public int ProjectID { get; set; }

        public Project Project { get; set; }


        public string AppUserID { get; set; }

        public AppUser AppUser { get; set; }

    }

我有以下视图模型:


    public class DeleteUserFromProjectViewModel

    {

        public IQueryable<AppUser> Users { get; set; }

        public PagingInfo PagingInfo { get; set; }

    }

在我的控制器中,我尝试Users为我的 ViewModel 填充:


                DeleteUserFromProjectViewModel model = new DeleteUserFromProjectViewModel

                {

                    //HOW DO I RETURN JUST THE APPUSERS FROM THE PROJECT MANAGER OBJECT?

                    //Users = repository.ProjectManagers.Any(p => p.ProjectID == projectId).Select;


                    PagingInfo = new PagingInfo

                    {

                        CurrentPage = page,

                        ItemsPerPage = PageSize,

                        TotalItems = proj.ProjectManagers.Count()

                    }


                };

我试过kludge


                List<AppUser> userList = new List<AppUser>();

                foreach(ProjectManager pm in proj.ProjectManagers)

                {

                    //this gives error that cannot convert string userId to char??

                    foreach (string userId in pm.AppUserID)

                    {

                        AppUser newUser = await userManager.FindByIdAsync(userId);

                        userList.Add(newUser);

                    }

                }


慕雪6442864
浏览 120回答 1
1回答

繁星coding

因为你pm.AppUserID已经是一个字符串值,如果你foreach在它上面使用你将迭代字符串值,那么你将得到char从您的评论来看,您似乎可以使用 linq&nbsp;Select。List<AppUser>&nbsp;userList&nbsp;=&nbsp;proj.ProjectManagers.Select(x=>x.AppUser).ToList();
随时随地看视频慕课网APP
我要回答