Freigeben über


SyncSchema-Klasse

Stellt die Schemainformationen dar, die zum Erstellen von Tabellen benötigt werden, die an der Synchronisierung beteiligt sind.

Namespace:  Microsoft.Synchronization.Data
Assembly:  Microsoft.Synchronization.Data (in Microsoft.Synchronization.Data.dll)

Syntax

'Declaration
<SerializableAttribute> _
Public Class SyncSchema _
    Implements IDisposable
'Usage
Dim instance As SyncSchema
[SerializableAttribute]
public class SyncSchema : IDisposable
[SerializableAttribute]
public ref class SyncSchema : IDisposable
[<SerializableAttribute>]
type SyncSchema =  
    class
        interface IDisposable
    end
public class SyncSchema implements IDisposable

Hinweise

Das SyncSchema-Objekt enthält die Schemainformationen für die Synchronisierung. Sie können dieses Objekt manuell so konstruieren, dass der Client die Schemainformationen direkt abrufen kann, ohne auf die zugrunde liegende Datenbank auf Serverseite zuzugreifen.

Beispiele

Das folgende Codebeispiel erstellt ein Schema für die Tabellen OrderHeader und OrderDetail. Zunächst wird auf Basis eines DataSet ein Schema erstellt, das nur die OrderHeader-Tabelle enthält. Wie beim SyncAdapter muss der Tabellenname dem Namen der SyncTable entsprechen. Anschließend wird manuell das Schema für die OrderDetail-Tabelle hinzugefügt. An dieser Stelle können Datentypen zugeordnet werden, sofern dies seitens der Anwendung erforderlich ist.

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

Vererbungshierarchie

System. . :: . .Object
  Microsoft.Synchronization.Data..::..SyncSchema

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Verweis

SyncSchema-Member

Microsoft.Synchronization.Data-Namespace