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?

Schreibe einen Kommentar