我有这些代码在索引页面中显示我数据库中的第一个学生记录和第一组记录:
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);
我该如何解决这个问题?感谢
答案 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()
添加实体。