C#C
C#2y ago
GABRIEL22

System.NullReferenceException: Object reference not set to an instance of an object.

I'm developing a Asp.net Api which consist in the updating a existing Object into another, but when I use the controller, return the following error:

System.NullReferenceException: Object reference not set to an instance of an object.


This is the model:
public class Teacher {
        
        [Key]
        public int? Dni {get; set; }
        public string? FirstName {get; set; }
        public string? SurName {get; set; }
        public string? Email {get; set; }
        public string? Password {get; set;}
        public bool? Status {get; set; }

    }

   public class Subject
    {
        public string? id {get;set;} 
        public string? Title {get; set; }
        public int? Credits {get; set; }

        public int? TeacherDni {get; set;}   
        [ForeignKey(nameof(TeacherDni))]         
        public virtual Teacher Teacher {get; set;}          

      }

The controller logic consist in the searching through Subject to find whether a teacher is settled (I mean when it's not null) or not. If is does exist, then search for a existing Teacher and set teacher using his Dni as a foreign key :
[HttpPut("/Enroll/{subjectid}")]

public IActionResult EnrollTeacher(string subjectid, int teacherDni)
    {
            
        var subject = _context.Subject.GetSubjectById(subjectid);
                    
        if(subject.TeacherDni == null) //NullReferenceException
           {
              return NotFound();
           }
        var teacher = _context.Teacher.GetTeacherbyDni(teacherDni);
                    
        subject.TeacherDni = teacher.Dni;

        _context.UnitOfWork.SaveChanges();
                    
        return Ok(subject);
 }

I must to mention that I'm doing this with existing data of database's seed .
Was this page helpful?