Я пытаюсь изменить модель из View, а затем обновить базу данных, используя эту модель.Мой код можно увидеть ниже:
public ActionResult Edit(Saving saving)
{
if (ModelState.IsValid)
{
Int32[] ids = saving.CatIds.Split(',').Select(n => Convert.ToInt32(n)).ToArray();
foreach (var category in db.Category.Where(m => ids.Contains(m.id)).ToList())
saving.Category.Add(category);
db.ObjectStateManager.ChangeObjectState(saving, EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(saving);
}
мой код выдает эту ошибку:
Объект не может быть присоединен, поскольку он уже находится в контексте объекта.Объект может быть повторно присоединен только в том случае, если он находится в неизменном состоянии.
и если я попробую этот код:
public ActionResult Edit(Saving saving)
{
if (ModelState.IsValid)
{
Int32[] ids = saving.CatIds.Split(',').Select(n => Convert.ToInt32(n)).ToArray();
foreach (var category in db.Category.Where(m => ids.Contains(m.id)).ToList())
saving.Category.Add(category);
db.ObjectStateManager.ChangeObjectState(saving, EntityState.Unchanged);
db.Saving.Attach(saving);
db.ObjectStateManager.ChangeObjectState(saving, EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(saving);
}
Я получаю ошибку ниже:
Нарушение ограничения PRIMARY KEY 'PK_ProductCategory_1'.Невозможно вставить дубликат ключа в объект 'dbo.ProductCategory'.
Я не знаю, что делать и как его решить.Любая помощь будет оценена.Спасибо