这是我的情况:
我有
My database
我的目标
将新学生添加到班级列表中。
我的代码:
public void addStudent()
{
using (RegistarDbContext db = new RegistarDbContext())
{
var query = db.tblCourses
.SelectMany(s => s.tblStudents)
.ToList();
query.Add(selectedStudentList);
db.SaveChanges();
}
}
代码上下文:
selectedStudentList =从下拉列表中选择的(tblStudent)的类型
其他信息:
逐步执行该程序,看来我的学生已添加到变量查询中,但是无法保存更改。
答案 0 :(得分:0)
以防其他任何人想知道我的问题的答案:
public void addStudent()
{
//Get the course ID thats been selected.
var selectedCourseID = selectedCourseList.courseID;
using (RegistarDbContext db = new RegistarDbContext())
{
//Find the course in the database.
var course = db.tblCourses.Where(c => c.courseID == selectedCourseID).FirstOrDefault();
//Find the student to add from the database.
var student = db.tblStudents.Where(s => s.studentID == selectedStudentList.studentID).FirstOrDefault();
if (checkIfExists(course, student))
MessageBox.Show("The student is already in the list!", "ERROR: ", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
//Add it to the coruses student list.
course.tblStudents.Add(student);
db.SaveChanges();
MessageBox.Show(String.Format("{0} was successfully enrolled in {1}!", student.fullName, course.name), "Student successfully added!", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
}
我学到的东西
将学生添加到具有学生列表的课程时,必须同时选择该课程,并且该学生将数据库放入数据库。
只有这样,您才能应用.add函数将更改保存到数据库中!
我希望这可以节省某人花在我身上的时间:)