DbServerSyncProvider.Schema-Eigenschaft
Ruft ein SyncSchema-Objekt ab, das Informationen über das Tabellenschema auf dem Server enthält, oder legt ein solches Objekt fest.
Namespace: Microsoft.Synchronization.Data.Server
Assembly: Microsoft.Synchronization.Data.Server (in microsoft.synchronization.data.server.dll)
Syntax
'Declaration
<SuppressMessageAttribute("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")> _
Public Property Schema As SyncSchema
'Usage
Dim instance As DbServerSyncProvider
Dim value As SyncSchema
value = instance.Schema
instance.Schema = value
[SuppressMessageAttribute("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")]
public SyncSchema Schema { get; set; }
[SuppressMessageAttribute(L"Microsoft.Naming", L"CA1721:PropertyNamesShouldNotMatchGetMethods")]
public:
property SyncSchema^ Schema {
SyncSchema^ get ();
void set (SyncSchema^ value);
}
/** @property */
public SyncSchema get_Schema ()
/** @property */
public void set_Schema (SyncSchema value)
public function get Schema () : SyncSchema
public function set Schema (value : SyncSchema)
Eigenschaftenwert
Ein SyncSchema-Objekt, das Informationen über das Tabellenschema auf dem Server enthält.
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.
Beispiel
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 einer Anwendung erforderlich ist. Eine Darstellung dieses Codes im Kontext eines vollständigen Beispiels finden Sie unter Vorgehensweise: Initialisieren der Clientdatenbank und Arbeiten mit dem Tabellenschema.
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
Siehe auch
Verweis
DbServerSyncProvider-Klasse
DbServerSyncProvider-Member
Microsoft.Synchronization.Data.Server-Namespace