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 ループ内でこれを実行し、Attendanceday 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 に答える