我構建了這個示例來幫助示例與導航屬性相關的問題以插入相關物體。我收到錯誤 Error System.ArgumentNullException: 'Value cannot be null。引數名稱: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);```
uj5u.com熱心網友回復:
試試這個:添加一個?在 s.Courses... 之后,如果 Courses 為空,它不會嘗試呼叫 Select
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()
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530631.html
標籤:C#实体框架
