Het object kan niet worden verwijderd omdat het niet is gevonden in de ObjectStateManager

Het object kan niet worden verwijderd omdat het niet is gevonden in de ObjectStateManager

Het probleem is dat u losgekoppelde entiteiten niet kunt verwijderen (of verwijderen) en dat u een entiteit niet twee keer kunt koppelen. Je hebt zoiets als hieronder nodig.

var entry = db.Entry(myCurrent);
if (entry.State == EntityState.Detached)
    db.myTable.Attach(myCurrent);
db.myTable.Remove(myCurrent);

als je zojuist het model van de bewerkings- of verwijderweergave per post hebt ontvangen of het zelf hebt gegenereerd, dan weet EF er niets van, dus je stelt de status in op "Verwijderd" (of EntityState.Modified etc) om EF te informeren door:

//generate it yourself if not posted from edit/delete view
//var model = new Model { Id = 123 };

//set to delete
db.Entry(model).State = EntityState.Deleted; // or EntityState.Modified for edit etc.
db.SaveChanges();

Het andere antwoord werkte niet, dus hier is hoe ik het heb opgelost.

Voorheen had ik:

public void ok(myTable myCurrent)
{
    //delete entries from other tables in relationship with myTable
    db.myTables.DeleteObject(myCurrent);

}

Ik heb het hiermee opgelost:

public void ok(int current_id)
{
    //delete entries from other tables in relationship with myTable
    var y = (from x in db.myTables where x.id == current_id select x).First();
    db.myTables.DeleteObject(y);

}