2

我有一个应用程序,学生可以在其中注册学校课程。为了准备他们的出勤信息,我需要填充出勤表中的数据。我通常会像这样完成这项任务:

Attendance newAttendace = new Attendance
{
    CourseID = course.CourseID,
    StudentID = thisStudent.StudentID,
    AttendanceDay = 1,
    Present = false
};
db.Attendance.Add(newAttendance);
db.SaveChanges();

但是我需要为课程的每个可能的出勤日都执行此操作 - 因此,如果学生有 20 天的时间参加这门课程,我需要能够添加 AttendanceDay = 1 到 20 的行。

我正在考虑在 for 循环中执行此操作并一遍又一遍地增加出勤日 1 并将“newAttendance”添加到数据库中 20 次然后执行 db.SaveChanges() 调用 - 但我在进入数据库时​​从未执行过 for 循环之前的条目 - 在使用 C# 的 ASP.NET MVC 中是否有更优雅的方式来执行此操作?

4

1 回答 1

3

我认为这是正确的做法。但请确保您db.SaveChanges()在循环之外。你只需要调用一次

for(int i=0;i<20;i++)
{
   Attendance newAttendace = new Attendance
  {
    CourseID = course.CourseID,
    StudentID = thisStudent.StudentID,
    AttendanceDay = 1,
    Present = false
  };
  db.Attendance.Add(newAttendance);
}
db.SaveChanges();
于 2012-04-26T12:15:23.750 回答