В EF 4.1, 4.2 и 4.3, работающей в .NET 4, есть ошибка (или, скорее, отсутствие оптимизации), которая приводит к тому, что DetectChanges обрабатывает объекты, о которых известно, что отслеживание изменений не требуется.Это связано с тем, что EF, работающий в .NET 4, не отслеживает, существуют ли какие-либо объекты, для которых требуется отслеживание изменений, или нет, поэтому он должен проверять каждый раз.
Это исправлено в EF5 при работе в.NET 4.5, которая скоро будет доступна в бета-версии.Я только что проверил, что в EF5 в .NET 4.5 средства получения неизменных прокси-серверов отслеживания изменений не вызываются в SaveChanges, даже если для AutoDetectChangesEnabled установлено значение true.
При этом даже в EF 4.1-4.3не верьте, что метод get должен вызываться, если все, что EF делает, проверяет, является ли объект прокси-сервером отслеживания изменений, поэтому, похоже, здесь может быть еще одна ошибка.