Вернуть дочерний объект с помощью LINQ - PullRequest
3 голосов
/ 26 марта 2019

Я изучаю множество таблиц в 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; }
    }

У меня есть следующая ViewModel:

    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()
                    }

                };

Я пробовал кладж

                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);
                    }
                }

1 Ответ

3 голосов
/ 26 марта 2019

Поскольку ваше pm.AppUserID уже является строковым значением, если вы используете foreach для него, вы получите строковое значение итератора, тогда вы получите char

Из вашего комментария вы можете использоватьlinq Select.

List<AppUser> userList = proj.ProjectManagers.Select(x=>x.AppUser).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...