DbContext SaveChanges() - Erkennung von Entitäten aktualisiert

Habe ich überschrieben, der SaveChanges () - Methode in der Entity Framework 4.1 DbContext-Klasse.

Mein override sieht wie folgt aus:

public override int SaveChanges() {

    IEnumerable<DbEntityEntry> modifiedEntityEntries = ChangeTracker.Entries().Where( e => e.State == EntityState.Modified );

    Debug.Assert( modifiedEntityEntries.Count() == 2 );

    int savedChanges = base.SaveChanges();

    Debug.Assert( savedChanges == 1 );

    //HELP! At this point, how do I tell Which of the two "Modified" entities actually updated a row in the database?

    return savedChanges;

}

Davon ausgehen, dass es 2 Personen im Zusammenhang, und beide werden als Geändert markiert (EntityState.Modifiziert). Einer von Ihnen wurde modifiziert und unterscheidet sich von der zugrunde liegenden Datenbank Zeile. Der andere ist nicht wirklich unterschiedlich zu den zugrunde liegenden Datenbank-Zeile, es war nur als solche gekennzeichnet.

Wie sage ich nach Aufruf von SaveChanges (), welche die beiden Entitäten tatsächlich aktualisiert eine Zeile in der Datenbank, und die war auch nicht wirklich geändert, nachdem alle?

InformationsquelleAutor FantasticJamieBurns | 2011-11-14

Schreibe einen Kommentar