2013-06-09 3 views
1

내가 가지고있는 색인 페이지에 내 데이터베이스에서 처음으로 학생 기록과 첫번째 그룹 레코드를 표시이 코드 :널 객체 참조 예외

var studentToAdd = db.Students.FirstOrDefault(); 
var selectedGroup = db.Groups.FirstOrDefault(); 
ViewBag.Name = studentToAdd.Firstname; 
ViewBag.Group = selectedGroup.GroupName; 

이 작동하고있는 "리처드"와 "그룹 1"을 표시 내 색인 페이지. 그러나 "Group1"에 "Richard"를 추가해야하는이 코드를 추가하면 null 객체 예외가 발생합니다.

selectedGroup.Students.Add(studentToAdd); 

어떻게 수정합니까? 감사합니다

답변

1

귀하의 쿼리를 수행 같아요. 중단 점을 설정하고 코드를 디버깅하여 null 참조를 보유하는 변수를 찾을 수 있습니다.

해결 방법은 사용하는 기술과 Groups 클래스가 무엇인지 (다른 사람들은 virtual 속성에서 느린 로딩 중 무엇인가)에 따라 다릅니다. Groups 클래스의 생성자는 빈 Students 컬렉션을 초기화 할 수 있으며 .Add()이라는 엔티티를 추가 할 수 있습니다.

+4

* null 참조를 포함하는 변수를 찾을 수 있습니다 ... 코드 디버깅 * OP 코드 디버깅? 얼마나 참신한 아이디어입니까? –

+0

@ ta.speot.is 동의합니다. 코드를 온라인에 올리면 다른 사람들이 대신 할 수 있습니다. – CodeCaster

+1

감사합니다. 하지만이 질문을 게시하기 전에 내 코드를 디버깅하는 데 최선을 다했는지 여부를 믿거 나 말거나 믿지 마십시오. 어쩌면 나는 올바른 방법으로 디버깅을하지 않을 수도 있습니다. – WannaCSharp

3

추가하려고하면 그 시점에 selectedGroup.Students 속성은 null입니다.

Students 재산 널 (null) 인 Group 객체를 반환 var selectedGroup = db.Groups.FirstOrDefault()

if (selectedGroup.Students == null) 
    selectedGroup.Students = new List<Student>(); // If its a List 

selectedGroup.Students.Add(studentToAdd);