Я реализовал некоторую логику управления версиями БД с помощью DatabaseSchemaUpdater и обнаружил одну проблему.
Если я выполню этот код
updater.DatabaseSchemaVersion = updater.DatabaseSchemaVersion + new Random().Next(10)+1;
updater.Execute();
и выйдите из приложения кнопкой назад - все в порядке. Версия схемы изменена.
Если я уйду с помощью кнопки Пуск , а затем снова запустите приложение (на мой взгляд, довольно обычный случай для обычного пользователя) - ничего не обновляется. БД имеет предыдущую версию.
вызов Dispose () исправит эту проблему, но мы используем одноэлементный объект DataContext, так что этот подход будет немного хакерским для этого случая.
https://www.dropbox.com/s/wfyvwvjd12wifgl/DBUpdTest.zip - Тестовый проект - вы можете просто запустить приложение, закрыть его различными способами и посмотреть, что произойдет (db ver написано в текстовых полях).
Вопросы: нормально ли это поведение? Деактивирует и запускает приложение снова что-то еще? Есть ли способ обойти такие вещи (кроме утилизации)?