Wie kann ich stark typisierte Controller mit EntityObjects verwenden?
Meine Misserfolge...
Zuerst habe ich dies versucht:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Guid id, Department Model)
{
db.SaveChanges();
return RedirectToAction("Index");
}
Dadurch konnten keine Änderungen in der Datenbank gespeichert werden. Also habe ich versucht, das Modell an meinen ObjectContext anzuhängen:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Guid id, Department Model)
{
db.Attach(Model);
db.SaveChanges();
return RedirectToAction("Index");
}
Dies schlug fehl, weil "ein Objekt mit einem Null-EntityKey-Wert nicht mit einem Objektkontext verbunden werden kann". Also habe ich versucht, den EntityKey zuzuweisen:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Guid id, Department Model)
{
Model.EntityKey = (from Department d in db.Department
where d.Id == id
select d).FirstOrDefault().EntityKey;
db.Attach(Model);
db.SaveChanges();
return RedirectToAction("Index");
}
Dies schlug fehl, weil "ein Objekt mit demselben Schlüssel bereits im ObjectStateManager vorhanden ist. Der ObjectStateManager kann nicht mehrere Objekte mit demselben Schlüssel verfolgen."
Wie soll das funktionieren?