Замених метода SaveChanges() в класа DbContext на Entity Framework 4.1.
Моята замяна изглежда така:
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;
}
Да приемем, че има 2 обекта в контекста и двата са маркирани като модифицирани (EntityState.Modified). Един от тях е модифициран и е различен от основния ред на базата данни. Другият всъщност не е различен от основния ред на базата данни, просто е маркиран като такъв.
Как да кажа след извикването на SaveChanges() кой от двата обекта действително е актуализирал ред в базата данни и кой в крайна сметка не е бил наистина променен?