Во-первых, SaveChanges
не гарантирует обновления. Возвращает количество измененных строк. Поэтому проверьте возвращаемое значение. Если это 0, то EF не думает , что он сделал обновление. Если это> 0, то это так.
Во-вторых, вы должны профилировать SQL, чтобы увидеть, что отправляет EF.
Если результат SaveChanges
равен 0, то причина почти наверняка в том, что EF не думает, что что-либо в контексте изменено. Почему это будет зависеть от того, как ваши изменения отслеживаются. Ваш код выше выглядит корректно для вставки, но для обновления ApplyPropertyChanges
является излишним и должен быть удален.
Если EF отправляет SQL, но БД с ним ничего не делает, вам следует проверить SQL на предмет исправления.