Ich habe ein Problem mit dem Speichern der Änderungen in der Datenbank.
Ich aktualisiere das Modell A in meinem Controller, aber wenn ich die Änderungen mit SaveChanges() speichern, habe ich am Ende ein dupliziertes Element in der Datenbank für B.
Nach dem Aufruf von UpdateModel() habe ich die Bs-Eigenschaft überprüft, und es war so, wie ich es erwartet hatte, aber direkt nach dem Aufruf von SaveChanges(), wenn ich die Bs-Eigenschaft untersuche, sehe ich, dass die Id völlig anders ist (neue Id und neuer Eintrag).
Meine Klasse ist ähnlich wie diese:
public class A
{
[HiddenInput(DisplayValue = false)]
public int AId { get; set; }
public string Name { get; set; }
public virtual ICollection<B> Bs{ get; set; }
}
public class B
{
[HiddenInput(DisplayValue = false)]
public int BId { get; set; }
public string Name { get; set; }
public virtual ICollection<A> As{ get; set; }
}
Mein Controller ist folgendermaßen aufgebaut:
[HttpPost]
public ActionResult Edit(A theA)
{
try
{
db.Entry(theA).State = EntityState.Modified;
foreach (var item in theA.Bs)
{
db.Entry(item).State = EntityState.Modified;
}
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
Mache ich etwas falsch?
Vielen Dank im Voraus