Wie kann ich ein Objekt löschen mit DbContext in c#?
Habe ich diese Methode löschen:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
wenn ich auf das löschen-Taste, bekomme ich diesen Fehler:
Das Objekt kann nicht gelöscht werden, weil es nicht gefunden wurde in der
ObjectStateManager
.
Fand ich heraus, dass es ist, weil es wurden zwei Instanzen von Context
Klasse. So habe ich versucht, dieses:
private void btnDeleteOrderLine_Click(object sender, EventArgs e)
{
OrderLine orderLine = (OrderLine)dgvOrderLine.SelectedRows[0].DataBoundItem;
db.OrderLines.Attach(orderLine); //added this part
db.OrderLines.Remove(orderLine);
db.SaveChanges();
refreshGrid();
}
dann dies gab mir die folgende Fehlermeldung:
Einem entity-Objekt verwiesen werden kann, indem mehrere Instanzen von
IEntityChangeTracker
.
Wie kann ich dieses Problem beheben und löschen eines Objekts aus dem Kontext DbSet?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zuerst das Element aus dem Rahmen und entfernen Sie es dann. Benutzt habe ich eine Eigenschaft namens
Id
. Ist dies nicht der Fall sein kann. Sie haben dort die entsprechende key-Eigenschaft.Nun wollen wir ein bisschen tiefer gehen, damit wir verstehen, die folgende Fehlermeldung:
Was ist der
ObjectStateManager
Klasse? Accoding zu MSDN:Zusätzlich zu den oben genannten:
Versuchen Sie zu löschen, anstatt zu entfernen und wickeln Sie es in mit