Assembly: Microsoft.Synchronization.Data (in microsoft.synchronization.data.dll)
After a synchronization table is defined it can be added to a synchronization group. A synchronization group is a mechanism to ensure consistent application of changes for a set of tables. If tables are included in a synchronization group, changes to those tables are transferred as a unit and applied in a single transaction. If any change in the group fails, changes for the whole group are retried on the next synchronization.
The following code example is from a class that derives from SyncAgent. The code creates two synchronization groups and three synchronization tables. The
Customer table is added to the
Customer group and the
OrderDetail tables are added to the
Order group. All tables are download-only. If a table exists at the client, the table is dropped and re-created during the initial synchronization. To view this code in the context of a complete example, see How to: Filter Rows and Columns.
//Create two SyncGroups so that changes to OrderHeader //and OrderDetail are made in one transaction. Depending on //application requirements, you might include Customer //in the same group. SyncGroup customerSyncGroup = new SyncGroup("Customer"); SyncGroup orderSyncGroup = new SyncGroup("Order"); //Add each table: specify a synchronization direction of //DownloadOnly. SyncTable customerSyncTable = new SyncTable("Customer"); customerSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable; customerSyncTable.SyncDirection = SyncDirection.DownloadOnly; customerSyncTable.SyncGroup = customerSyncGroup; this.Configuration.SyncTables.Add(customerSyncTable); SyncTable orderHeaderSyncTable = new SyncTable("OrderHeader"); orderHeaderSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable; orderHeaderSyncTable.SyncDirection = SyncDirection.DownloadOnly; orderHeaderSyncTable.SyncGroup = orderSyncGroup; this.Configuration.SyncTables.Add(orderHeaderSyncTable); SyncTable orderDetailSyncTable = new SyncTable("OrderDetail"); orderDetailSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable; orderDetailSyncTable.SyncDirection = SyncDirection.DownloadOnly; orderDetailSyncTable.SyncGroup = orderSyncGroup; this.Configuration.SyncTables.Add(orderDetailSyncTable);