Hallo Marco,
grundsätzlich sollte man in dem Fall die Stammdaten, die mit der Anwendung ausgeliefert werden in einer eigenen Datenbank vorhalten.
Zu Anfang kann aus dieser Datenbank eine Kopie erstellen, die die "Benutzerdatenbank" wird. Dabei kann man die ganze Datei (SDF) kopieren. Die Ablage erfolgt dabei i. a. in einem Unterverzeichnis von
CommonApplicationData oder ApplicationData.
Werden später Änderungen an der Stammdatenbank vorgenommen, sollte man diese neu übertragen und damit die Benutzerdatenbank(en) aktualisieren - was auf INSERT / UPDATE / DELETE bei den Daten und CREATE / ALTER TABLE bei Schema-Änderungen hinausläuft.
Um zu erkennen, ob ein Stammdatenabgleich notwendig ist, kann man eine Version-Spalte in einer zentralen Tabelle führen. Und darüber prüfen, ob die jeweiligen Benutzer-Datenbank auf dem gleichen Stand ist. Lässt ein Anwender eine (oder mehrere) Version(en)
aus, so sollte der Aktualisierungmechanismus auch damit klar kommen - dabei aktualisiert man i. a. ausgelassenen Versionen sukzessive bis zur aktuellen.
Vor jeder Aktualisierung ist dringend zu empfehlen, eine vollständige Kopie der Datenbank zu erstellen, falls dabei etwas schief geht. Da SQL Server Compact kein BACKUP kennt, kann das nur eine Dateikopie sein. Zu dem Zeitpunkt darf keine offene (SqlCeConnection)
Verbindung existieren. (Sinnvoll ist es, dies unabhängig als Sicherungsmechanismus bereit zu stellen).
Gruß Elmar