Для тех из вас, кто использует EF 4+, вот эквивалентное решение в качестве метода расширения:
public static class DbContextExtensions {
public static Boolean HasPendingChanges(this DbContext context) {
return context.ChangeTracker.Entries()
.Any(e => e.State == EntityState.Added
|| e.State == EntityState.Deleted
|| e.State == EntityState.Modified);
}
}
Обратите внимание, что вы не можете объединить значения в виде битовой маски. Функция GetObjectStateEntries()
обработала логику за вас, но LINQ не даст правильных результатов.