Viewからモデルを変更して、そのモデルを使用してデータベースを更新しようとしています。私のコードは、以下に見られることができます。ASP.NET MVC 3 Update、ObjectStateManager、Concurrency
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);
}
私のコードは、このエラーを与える:
The object cannot be attached because it is already in the object context. An object can only be reattached when it is in an unchanged state.
、私はこのコードをしようとした場合:
: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);
}
を私は下のエラーを取得しています
Violation of PRIMARY KEY constraint 'PK_ProductCategory_1'. Cannot insert duplicate key in object 'dbo.ProductCategory'.
私は何をすればいいのか分からないそれをolive。どんな助けもありがとう。ありがとうございました