asp.net Map问题,对象引用未设置为示例

7tofc5zh  于 2022-12-20  发布在  .NET
关注(0)|答案(1)|浏览(110)

这里有一个小问题。我有一个课程类和一个用户。我想通过API显示一个课程中的所有用户。
我得到的误差,
'对象引用未设置为对象的示例。'
这是我的控制器方法

var objList = _courseRepo.GetUsers(CourseId);
       
        if (objList == null)
        {
            return NotFound();
        }

        var objToShow = new List<ViewCourseDetailsDTO>();

        foreach (var obj in objList)
        {

            objToShow.Add(_mapper.Map<ViewCourseDetailsDTO>(obj));
            
        }


        
        return Ok(objToShow);

我得到的错误在Foreach循环中。它说我需要创建一个对象...
这是我的DTO类的样子

public class ViewCourseDetailsDTO
    {
        public int CourseId { get; set; }
        public string CourseTitle { get; set; };
        public ICollection<UserDTO>? Users { get; set; } = new List<UserDTO>();
    }

还有这个

public class UserDTO
    {
        public string ID { get; set; }
        public string UserName { get; set; }
        public string Name { get; set; }

    }

你认为我必须以某种方式打破用户DTO吗?你是这么认为的吗?
如果您想查看我CourseRepository,

public ICollection<Course> GetUsers(int courseId)
        {
            return _db.Course.Where(c => c.CourseId == courseId).Include(a => a.Users).ToList();
        }

如果你能帮我的话我会很感激的。

wydwbb8l

wydwbb8l1#

我找到了,该死!在我的控制器上,我忘了放Map器了,

public CourseController(ICourseRepository courseRepo, IMapper mapper)
        {
            _courseRepo = courseRepo;
            _mapper = mapper;
        }

我把它正确地注射在顶部,但忘记把它放在里面^

相关问题