2013-06-09 4 views
1

У меня есть эти коды, которые отображают первую запись студента и первую групповую запись в моей базе данных в индексной странице:Null Object Reference Исключение

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

Он работает и отображает «Ричард» и «Group1» в моем индексная страница. Но когда я добавить этот код, который должен добавить «Ричард» в «Group1» Я получаю исключение нулевого объекта:

selectedGroup.Students.Add(studentToAdd); 

Как это исправить? спасибо

ответ

1

Ваш запрос var selectedGroup = db.Groups.FirstOrDefault() возвращает объект, GroupStudents свойство имеет нулевое значение, я думаю. Вы можете найти переменную, которая содержит нулевую ссылку, установив точку останова и отладив ваш код.

Решение зависит от того, какие методы вы используете и что класс Groups выглядит (среди прочих ленивая загрузка по virtual свойствам). Конструктор класса Groups также может инициализировать пустую коллекцию Students, к которой вы можете добавить объекты с .Add().

+4

* Вы можете найти переменную, которая содержит нулевую ссылку, ... отлаживая код * OP отлаживая свой код? Какая новая идея .. –

+0

@ ta.speot.is Я согласен, гораздо проще поставить код онлайн и позволить другим делать это за вас. – CodeCaster

+1

Спасибо. Но верьте или нет, я попробовал отлаживать свой код прежде, чем я разместил этот вопрос. Возможно, я просто не отлаживаю правильный путь. – WannaCSharp

3

При попытке добавить, в этот момент selectedGroup.Students Недвижимость null.

ли это

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

selectedGroup.Students.Add(studentToAdd); 
Смежные вопросы