SqlCeSyncStoreSnapshotInitialization Class
Represents an existing SQL Server Compact database file that can be used to initialize another SQL Server Compact database for synchronization.
Assembly: Microsoft.Synchronization.Data.SqlServerCe (in Microsoft.Synchronization.Data.SqlServerCe.dll)
The SqlCeSyncStoreSnapshotInitialization type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | SqlCeSyncStoreSnapshotInitialization() | Initializes a new instance of the SqlCeSyncStoreSnapshotInitialization class by using default values. |
![]() | SqlCeSyncStoreSnapshotInitialization(String) | Initializes a new instance of the SqlCeSyncStoreSnapshotInitialization class for the specified object prefix. |
![]() | SqlCeSyncStoreSnapshotInitialization(SyncIdFormatGroup, String) | Initializes a new instance of the SqlCeSyncStoreSnapshotInitialization class for the specified ID format and object prefix. |
| Name | Description | |
|---|---|---|
![]() | ObjectPrefix | Gets or sets the optional prefix that is used to identify objects that Sync Framework creates. |
| Name | Description | |
|---|---|---|
![]() | Dispose() | Releases all resources that are used by the SqlCeSyncStoreSnapshotInitialization object. |
![]() | Dispose(Boolean) | Releases the unmanaged resources used by the SqlCeSyncStoreSnapshotInitialization object and optionally releases the managed resources. |
![]() | Equals | (Inherited from Object.) |
![]() | Finalize | (Inherited from Object.) |
![]() | GenerateSnapshot | Generates a snapshot of an existing SQL Server Compact database file that can be used to initialize another SQL Server Compact database for synchronization. |
![]() | GetHashCode | (Inherited from Object.) |
![]() | GetType | (Inherited from Object.) |
![]() | InitializeSnapshot | Updates metadata for a snapshot so that the snapshot can be used by a new synchronization node. |
![]() | MemberwiseClone | (Inherited from Object.) |
![]() | ToString | (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | BeginSnapshotInitialization | Occurs when InitializeSnapshot is called. |
![]() | EndSnapshotInitialization | Occurs when all tables for a particular scope in the snapshot have been initialized. |
Snapshot initialization is designed to reduce the time required to initialize a client database. After one client database has been initialized by using full initialization, subsequent databases can be initialized by using a snapshot of this first client database. A snapshot is a specially-prepared SQL Server Compact database that contains table schema, data (optional), and change-tracking infrastructure. Copy this snapshot to each client that requires it. During the first synchronization session for a client, client-specific metadata is updated, and any changes that occurred since the snapshot was created are downloaded to the client database.
Important |
|---|
Snapshots should be generated only when there is no activity in the SQL Server Compact database. Concurrent operations of any type are not supported during snapshot generation. |
The following code example generates a snapshot named SyncSampleClient2.sdf from the SyncSampleClient1.sdf database. The code then synchronizes SyncSampleClient2.sdf with the server database. To view this code in the context of a complete example, see How To: Execute Database Synchronization (SQL Server).
// Create a snapshot from the SQL Server Compact database, which will be used to // initialize a second Compact database. Again, this database could be provisioned // by retrieving scope information from another database, but we want to // demonstrate the use of snapshots, which provide a convenient deployment // mechanism for Compact databases. SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization("Sync"); syncStoreSnapshot.GenerateSnapshot(clientSqlCe1Conn, "SyncSampleClient2.sdf"); // The new SQL Server Compact client synchronizes with the server, but // no data is downloaded because the snapshot already contains // all of the data from the first Compact database. syncOrchestrator = new SampleSyncOrchestrator( new SqlSyncProvider("filtered_customer", serverConn, null, "Sync"), new SqlCeSyncProvider("filtered_customer", clientSqlCe2Conn, "Sync") ); syncStats = syncOrchestrator.Synchronize(); syncOrchestrator.DisplayStats(syncStats, "initial");
' Create a snapshot from the SQL Server Compact database, which will be used to ' initialize a second Compact database. Again, this database could be provisioned ' by retrieving scope information from another database, but we want to ' demonstrate the use of snapshots, which provide a convenient deployment ' mechanism for Compact databases. Dim syncStoreSnapshot As New SqlCeSyncStoreSnapshotInitialization("Sync") syncStoreSnapshot.GenerateSnapshot(clientSqlCe1Conn, "SyncSampleClient2.sdf") ' The new SQL Server Compact client synchronizes with the server, but ' no data is downloaded because the snapshot already contains ' all of the data from the first Compact database. syncOrchestrator = New SampleSyncOrchestrator( _ New SqlSyncProvider("filtered_customer", serverConn, Nothing, "Sync"), _ New SqlCeSyncProvider("filtered_customer", clientSqlCe2Conn, "Sync")) syncStats = syncOrchestrator.Synchronize() syncOrchestrator.DisplayStats(syncStats, "initial")
