Avatar billede scorp-d Nybegynder
08. april 2010 - 09:20

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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester