Entity-framework System.ArgumentNullException



我构建这个示例是为了帮助演示与导航属性插入相关实体相关的问题。我得到了错误系统。参数不能为空。参数名称:source',因为student2没有课程数据。

是否有一种方法来插入这个数据而不得到这个错误?

{
static void Main(string[] args)
{
var Course = new Course();
Course.Id = 1;
Course.studentID = 1;
Course.Name = "Math";
var student1 = new student();
student1.Id = 1;
student1.Name = "Sam";
student1.Courses.Add(Course);
var student2 = new student();
student2.Id = 2;
student2.Name = "Bill";

}
}
public class student
{
public int Id {get; set;}
public string Name { get; set; }
public List<Course> Courses { get; set; }
}
public class Course
{
public int Id { get; set; }
public int studentID { get; set; }
public string Name {get; set;}
}
}```
Saving data

```var newStudent = db.Student
.Include(x => x.Course);
var newInsertStudent = new EFModel.Student
{
Id = s.id,
Name = s.Name,
Courses = s.Courses.Select(p => new EFModel.Course
{
Id = p.Id,
studentID = s.id,
Name = s.name
}).ToList()
};   
newStudent.Student.Add(newInsertStudent);```

试试这个:添加一个?后s.Courses……这将使它不会尝试调用Select如果Courses是null

var newInsertStudent = new EFModel.Student
{
Id = s.id,
Name = s.Name,
Courses = s.Courses?.Select(p => new EFModel.Course
{
Id = p.Id,
studentID = s.id,
Name = s.name
}).ToList()
};   

最新更新