如何通过外键关联自定义对象至User并解决属性显示异常问题
问题:无法从关联外键表获取Department值并显示
我在显示自定义对象属性时遇到问题,程序无法从带有对应外键的表中获取关联的Department值,已经尝试过谷歌和YouTube上的空引用异常修复方案,但都无效。外键字段已填充,目标是显示关联的Department数据。
UserViewModel.cs
public class UserViewModel { public string Name { get; set; } public string Id { get; set; } public Department Department { get; set; } }
AppUser.cs
public class AppUser : IdentityUser { [DefaultValue(null)] public string Name { get; set; } public Department Department { get; set; } public Single1 Single { get; set; } }
Controller代码
public async Task<IActionResult> Index() { IEnumerable<AppUser> users = await _userRepository.GetAll(); List<UserViewModel> usersViewModel = new List<UserViewModel>(); foreach (var user in users) { var userViewModel = new UserViewModel() { Id = user.Id, Name = user.Name, Department = await _userRepository.GetDepartmentByIdAsync(user.Department.DepartmentId), }; usersViewModel.Add(userViewModel); } return View(usersViewModel); }
Repository代码
public async Task<IEnumerable<AppUser>> GetAll() { var users = await _context.Users.ToListAsync(); return users; } public async Task<Department> GetDepartmentByIdAsync(string id) { return await _context.Departments.Where(o => o.DepartmentId == id).FirstOrDefaultAsync(); }
补充说明
- 外键字段已填充,目标是将关联的Department值显示到视图中
- 当前执行时会触发空引用异常,无法正确获取Department数据
内容的提问来源于stack exchange,提问作者Trung Đặng Đức
相关产品推荐
相关产品推荐

