SyncSchema Class
TOC
Collapse the table of content
Expand the table of content

SyncSchema Class

Synchronization Services - ADO.NET 1.0 SP1

Represents the schema information that is required to create tables that are involved in synchronization.

Namespace: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in microsoft.synchronization.data.dll)

[SerializableAttribute] 
public class SyncSchema : IDisposable
/** @attribute SerializableAttribute() */ 
public class SyncSchema implements IDisposable
SerializableAttribute 
public class SyncSchema implements IDisposable

The SyncSchema object contains the schema information for synchronization. You can manually construct this object so the client can obtain the schema information directly without accessing the underlying database on the server side.

The following code example creates the schema for the OrderHeader and OrderDetail tables. The code first creates a schema based on a DataSet that contains only the OrderHeader table. As with the SyncAdapter, the table name must match the SyncTable name. The schema for the OrderDetail table is then added manually. This is the place to map data types if the application requires it.

DataSet orderHeaderDataSet = util.CreateDataSetFromServer();
orderHeaderDataSet.Tables[0].TableName = "OrderHeader";
this.Schema = new SyncSchema(orderHeaderDataSet);

this.Schema.Tables.Add("OrderDetail");

this.Schema.Tables["OrderDetail"].Columns.Add("OrderDetailId");
this.Schema.Tables["OrderDetail"].Columns["OrderDetailId"].ProviderDataType = "int";
this.Schema.Tables["OrderDetail"].Columns["OrderDetailId"].AllowNull = false;

this.Schema.Tables["OrderDetail"].Columns.Add("OrderId");
this.Schema.Tables["OrderDetail"].Columns["OrderId"].ProviderDataType = "uniqueidentifier";
this.Schema.Tables["OrderDetail"].Columns["OrderId"].RowGuid = true;
this.Schema.Tables["OrderDetail"].Columns["OrderId"].AllowNull = false;

this.Schema.Tables["OrderDetail"].Columns.Add("Product");
this.Schema.Tables["OrderDetail"].Columns["Product"].ProviderDataType = "nvarchar";
this.Schema.Tables["OrderDetail"].Columns["Product"].MaxLength = 100;
this.Schema.Tables["OrderDetail"].Columns["Product"].AllowNull = false;

this.Schema.Tables["OrderDetail"].Columns.Add("Quantity");
this.Schema.Tables["OrderDetail"].Columns["Quantity"].ProviderDataType = "int";
this.Schema.Tables["OrderDetail"].Columns["Quantity"].AllowNull = false;
           
//The primary key columns are passed as a string array.
string[] orderDetailPrimaryKey = new string[2];
orderDetailPrimaryKey[0] = "OrderDetailId";
orderDetailPrimaryKey[1] = "OrderId";
this.Schema.Tables["OrderDetail"].PrimaryKey = orderDetailPrimaryKey;

System.Object
  Microsoft.Synchronization.Data.SyncSchema

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2016 Microsoft