Cambiare lo stato di una entity con Entity Framework 4.0

In Entity Framework 4.0 possiamo finalmente cambiare lo stato di una entity una volta che questa è attaccata al contesto. Questo torna utile per avere un controllo completo su come l'entity verrà persistita sul database. Ad esempio, se abbiamo una entity modificata al di fuori del contesto e vogliamo persisterne le modifiche, possiamo attaccarla al contesto e poi impostarne lo stato a modificato.
Il metodo da usare è ChangeObjectState della classe ObjectStateManager a cui si accede tramite la proprietà ObjectStateManager del contesto. Questo metodo accetta in input l'entity ed il suo nuovo stato.

ctx.ObjectstateManager.ChangeObjectState(entity, EntityState.Modified)