空对象引用异常

时间:2013-06-09 11:24:19

标签: c# asp.net-mvc entity-framework

我有这些代码在索引页面中显示我数据库中的第一个学生记录和第一组记录:

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

它有效并且在我的索引页面中显示“Richard”和“Group1”。但是当我添加这个应该将“Richard”添加到“Group1”的代码时,我得到一个空对象异常:

selectedGroup.Students.Add(studentToAdd);

我该如何解决这个问题?感谢

2 个答案:

答案 0 :(得分:3)

当您尝试添加时,此时selectedGroup.Students属性为null

这样做

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

selectedGroup.Students.Add(studentToAdd);

答案 1 :(得分:1)

您的查询var selectedGroup = db.Groups.FirstOrDefault()会返回Group对象,Students属性为null。您可以通过设置断点并调试代码来找到保存空引用的变量。

解决方案取决于您使用的技术以及Groups类的外观(以及virtual属性上的延迟加载)。 Groups类的构造函数也可以初始化一个空的Students集合,然后您可以使用.Add()添加实体。