Start Debugging

Тег: change-tracker

5 статей

2026-10-27 errorsef-coredotnet
Исправление: The property 'X' is part of a key and so cannot be modified or marked as modified в EF Core
EF Core никогда не обновляет значение ключа у отслеживаемой сущности. Не копируйте ключ из DTO, используйте уникальный индекс вместо альтернативного ключа, а настоящий ключ меняйте вставкой новой строки и удалением старой. Проверено на EF Core 10.0.14.
Как проверить, отслеживается ли сущность в DbContext, перед её подключением в EF Core
Используйте DbSet.Local.FindEntry(key), чтобы спросить у трекера изменений, отслеживается ли сущность с заданным ключом, без обращения к базе данных и без перебора. Почему Entry(entity).State вводит в заблуждение, почему Find выполняет запрос, и проверенный помощник AttachOrMerge для EF Core 10.
2026-05-07 errorscsharpdotnet
Исправление: The instance of entity type cannot be tracked because another instance with the same key value is already being tracked
EF Core 11 выбрасывает это исключение, когда два объекта делят первичный ключ внутри одного DbContext. Отсоедините старый или обновите его на месте. AsNoTracking при чтении предотвращает коллизию.