当另一个表EmployeeCourseStatus
被编辑后,我试图在名为Course
的表中输入新条目。
每当编辑Course
条目以将其修订版增加1时,我都需要它来更新EmployeeCourseStatus
,以便它将保留每位员工的先前课程历史记录,并使用新的条目添加重复的条目修订号。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "CourseID,CourseName,SiteID,ValidFor,Rev,EffectiveDate,ExpiredDate")] Course course, EmployeeCourseStatu employeeCourseStatu,CourseViewModel courseViewModel)
{
if (ModelState.IsValid)
{
var OringinalRev = db.Courses.AsNoTracking().Where(P => P.CourseID == course.CourseID).Select(e => e.Rev)?.FirstOrDefault();
if (course.Rev == OringinalRev + 1)
{
foreach (var item in db.EmployeeCourseStatus.Where(e => e.CourseID==course.CourseID))
{
employeeCourseStatu.EmployeeID = item.EmployeeID;
employeeCourseStatu.CourseID = item.CourseID;
employeeCourseStatu.Status = null;
employeeCourseStatu.ValidFor = item.ValidFor;
employeeCourseStatu.CompletionDate = null;
employeeCourseStatu.Rev = item.Rev + 1;
db.EmployeeCourseStatus.Add(employeeCourseStatu);
}
}
db.Entry(course).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.SiteID = new SelectList(db.Sites, "SiteID", "SiteName", course.SiteID);
return View(course);
}
上面的代码仅将一个条目保存到数据库中,据我了解,因为每次循环遍历该表时都要替换这些值。
我如何拥有它,以便将每个迭代添加到数据库中?
答案 0 :(得分:1)
对于每次迭代,您使用相同的employeeCourseStatu实例,因此您的列表包含相同的对象。每次更改其属性时,它们都会被覆盖。您需要在循环中实例化一个新对象,例如
var ecs = new EmployeeCourseStatu();