linqtosqlを使用してmvc4フレームワークでオブジェクトを編集する際に問題が発生しました。「tbBoeking」オブジェクトはVisualStudio2010によって生成され、.dbmlファイルに存在します。生成されたばかりで、データベースやデータベースに変更は加えられていません。
BoekingController.csのコード:
//This class has been generated and resides in a .dbml file
private DataClassesDataContext db = new DataClassesDataContext();
//Display edit form
public ActionResult Edit(int id = 0)
{
tbBoeking boeking = db.tbBoekings.Single(p => p.boeknummer == id);
if (boeking == null)
{
return HttpNotFound();
}
return View(boeking);
}
//Process changes made in form
[HttpPost]
public ActionResult Edit(tbBoeking boeking)
{
if (ModelState.IsValid)
{
db.tbBoekings.Attach(boeking, true);
db.SubmitChanges();
return RedirectToAction("Index");
}
return View(boeking);
}
編集フォームの表示は正常に機能しますが、送信を押して2番目のEdit()を呼び出すと、問題が発生します。db.submitchanges()で、「行が見つからないか変更されていません」というエラーが表示されます。
このエラーに関する他のいくつかの投稿を読みましたが、役に立ちませんでした。私はLinq-to-sqlまたは並行性でいくつかの基本的な間違いを犯していると思います。Attach()を間違った場所で使用していますか、それとも別のものですか?
前もって感謝します、
ブライト