Это поведение AcceptAllChanges
.Принятие изменений «сбрасывает» внутреннее состояние ObjectContext
.Это означает, что все сущности, которые были добавлены или изменены, установлены в состояние «без изменений» , и все сущности, которые были удалены, отделены от контекста.
В отличие от этого, метод SaveChanges
повторяет внутреннее состояние ObjectContext
и создает команды INSERT db для каждого объекта с состоянием добавлено , команда UPDATE db для каждого объекта в изменено состояние и команда DELETE db для каждого объекта в удалено состояние.SaveChanges
по умолчанию принимает все изменения после выполнения всех команд.
Если вы запускаете AcceptAllChanges
до SaveChanges
, вы удаляете все изменения и нечего выполнять в БД.Причина, по которой этот метод существует, заключается в том, что вы можете отключить поведение по умолчанию SaveChanges
;в таком случае вы должны принять изменения вручную после выполнения SaveChanges
.В противном случае следующий вызов SaveChanges
снова выполнит изменения.