Я переопределил метод SaveChanges () в классе Entity Framework 4.1 DbContext.
Мое переопределение выглядит так:
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 (), какая из двух сущностей фактически обновила строкув базе данных, и какой из них не был действительно изменен в конце концов?