我正在学习 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); } }
1 回答
![?](http://img1.sycdn.imooc.com/5c4aa098000126bb09600960-100-100.jpg)
繁星coding
TA贡献1797条经验 获得超4个赞
因为你pm.AppUserID
已经是一个字符串值,如果你foreach
在它上面使用你将迭代字符串值,那么你将得到char
从您的评论来看,您似乎可以使用 linq Select
。
List<AppUser> userList = proj.ProjectManagers.Select(x=>x.AppUser).ToList();
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消