Я не обновляю отношения «многие ко многим». Когда я отлаживаю «Response.Write(teacher.skills);
», значения выглядят правильно, но база данных не обновляет объект.ASP.net MVC Entity framework update Многие для многих отношений
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "id,lastname,firstname,image,campusId,skillIds")] Teacher teacher)
{
if (ModelState.IsValid)
{
if (teacher.skillIds != null)
{
teacher.skills = (from t in db.Skills.ToList() where teacher.skillIds.Contains(t.id) select t).ToList();
}
Response.Write(teacher.skills);
// 1st attempt -->
//db.Teachers.Attach(teacher);
//db.Entry(teacher).State = EntityState.Modified;
// 2nd attempt -->
UpdateModel(teacher);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(teacher);
}
Сначала необходимо получить объект (учитель) из базы данных. Затем вы обновляете нужные поля и вызываете db.Entry (учитель) .State = EntityState.Modified и SaveChanges. – jpgrassi
Thx @jpgrassi, теперь я могу добавить элементы, но я не могу их удалить. Я предполагаю, что мне нужно удалить их вручную из массива навыков? – jsprds
Я не получил детали. Можете ли вы обновить свой вопрос? – jpgrassi