Partilhar via


Classe SyncSchema

Representa as informações de esquema que são necessárias para criar tabelas envolvidas na sincronização.

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

Sintaxe

'Declaração
<SerializableAttribute> _
Public Class SyncSchema
    Implements IDisposable
'Uso
Dim instance As SyncSchema
[SerializableAttribute] 
public class SyncSchema : IDisposable
[SerializableAttribute] 
public ref class SyncSchema : IDisposable
/** @attribute SerializableAttribute() */ 
public class SyncSchema implements IDisposable
SerializableAttribute 
public class SyncSchema implements IDisposable

Comentários

O objeto SyncSchema contém as informações de esquema para sincronização. Você pode construir manualmente esse objeto de forma que o cliente possa obter as informações de esquema diretamente sem acessar o banco de dados subjacente no servidor.

Exemplo

O exemplo de código a seguir cria o esquema para as tabelas OrderHeader e OrderDetail. O código cria primeiro um esquema com base em um DataSet que contém apenas a tabela OrderHeader. Assim como ocorre com o SyncAdapter, o nome da tabela deve corresponder ao nome da SyncTable. O esquema para a tabela OrderDetail é então adicionado manualmente. Esse é o local para mapear tipos de dados, caso o aplicativo requeira um mapeamento.

DataSet orderHeaderDataSet = Utility.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;
Dim orderHeaderDataSet As DataSet = Utility.CreateDataSetFromServer()
orderHeaderDataSet.Tables(0).TableName = "OrderHeader"
Me.Schema = New SyncSchema(orderHeaderDataSet)

With Me.Schema
    .Tables.Add("OrderDetail")

    .Tables("OrderDetail").Columns.Add("OrderDetailId")
    .Tables("OrderDetail").Columns("OrderDetailId").ProviderDataType = "int"
    .Tables("OrderDetail").Columns("OrderDetailId").AllowNull = False

    .Tables("OrderDetail").Columns.Add("OrderId")
    .Tables("OrderDetail").Columns("OrderId").ProviderDataType = "uniqueidentifier"
    .Tables("OrderDetail").Columns("OrderId").RowGuid = True
    .Tables("OrderDetail").Columns("OrderId").AllowNull = False

    .Tables("OrderDetail").Columns.Add("Product")
    .Tables("OrderDetail").Columns("Product").ProviderDataType = "nvarchar"
    .Tables("OrderDetail").Columns("Product").MaxLength = 100
    .Tables("OrderDetail").Columns("Product").AllowNull = False

    .Tables("OrderDetail").Columns.Add("Quantity")
    .Tables("OrderDetail").Columns("Quantity").ProviderDataType = "int"
    .Tables("OrderDetail").Columns("Quantity").AllowNull = False
End With        

'The primary key columns are passed as a string array.
Dim orderDetailPrimaryKey(1) As String
orderDetailPrimaryKey(0) = "OrderDetailId"
orderDetailPrimaryKey(1) = "OrderId"
Me.Schema.Tables("OrderDetail").PrimaryKey = orderDetailPrimaryKey

Hierarquia de herança

System.Object
  Microsoft.Synchronization.Data.SyncSchema

Segurança de thread

Qualquer membro estático público (Compartilhado no Visual Basic) deste tipo é protegido por thread. Não há garantia de que qualquer membro de instância esteja protegido por thread.

Consulte também

Referência

Membros SyncSchema
Namespace Microsoft.Synchronization.Data