Sync Framework : Local Data Cache
Hej.Jeg har leget lidt med MS Sync Framework, hvilket fungere fint så længe jeg ikke piller ved databasen.
Det jeg gerne ville spørge om der ikke er en lettere måde at opdatere den lokale-database + Dataset + tilhørende Sync-klasser når der sker designændringer i hoveddatabasen, end at slette dem og tilføje en ny 'local database cache' og opdatere det eksisterende dataset?
Hvis fx jeg ændre PK i hoveddatabasen, eller tilføjer/fjerner et felt, og forsøger at afvikle SyncAgent.Synchronize(); så får jeg fejlen:
"SQL Server Change Tracking has cleaned up tracking information for table 'dbo.XXXXXX'. To recover from this error, the client must reinitialize its local database and try again"
Så afvikler jeg følgende:
using (SqlCeConnection clientConn = new SqlCeConnection(connString))
{
if (File.Exists(clientConn.Database))
{
File.Delete(clientConn.Database);
}
}
SqlCeEngine sqlCeEngine = new SqlCeEngine(connString);
sqlCeEngine.CreateDatabase();
Hvilket gør det muligt at afvikle SyncAgent.Synchronize(); uden at få fejl, men nu passer det tilknyttede dataset ikke, hvilket smider en fejl ligeså snart jeg jeg prøver Fill el.
På forhånd tak
Scorp-D