Ich bin mir nicht ganz sicher, ob es eine Patentlösung gibt.
Grundsätzlich würde ich es folgendermassen machen ( oderhabe es sogar so gemacht),
dass Du deinem Object eine eigentschaft besitzt, die den Status wiedergibt. Dafür würde ich ein Enum hernehmen, mit den folgenden einträgen:
Created
Unchanged
Modifield
Deleted
...
Bei jedem setzen eines Properties prüfst Du ob es den Status unchanged hat und sich der Wert geändert hat. Ist dies der Fall, setzt du den Status von Unchanged auf Modifield.
Somit weisst du bei der persistierung, was Du mit dem Object machen musst.
Wenn Du mehr wissen möchtest schau doch mal unter
Invist nach. Da wird mittels Code-Generator genau so etwas gemacht.