Condividi tramite


Classe DbSyncAdapter

Rappresenta un set di comandi utilizzati per recuperare e applicare le modifiche dei dati e dei metadati apportate al database peer locale.

Spazio dei nomi: Microsoft.Synchronization.Data
Assembly: Microsoft.Synchronization.Data (in microsoft.synchronization.data.dll)

Sintassi

'Dichiarazione
<SuppressMessageAttribute("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase")> _
Public Class DbSyncAdapter
'Utilizzo
Dim instance As DbSyncAdapter
[SuppressMessageAttribute("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase")] 
public class DbSyncAdapter
[SuppressMessageAttribute(L"Microsoft.Naming", L"CA1706:ShortAcronymsShouldBeUppercase")] 
public ref class DbSyncAdapter
/** @attribute SuppressMessageAttribute("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase") */ 
public class DbSyncAdapter
SuppressMessageAttribute("Microsoft.Naming", "CA1706:ShortAcronymsShouldBeUppercase") 
public class DbSyncAdapter

Osservazioni

DbSyncAdapter funge da ponte tra DbSyncProvider e il database peer. Modellata in base all'adattatore dati di ADO.NET, l'adattatore di sincronizzazione viene definito per ogni tabella sincronizzata e fornisce al provider di sincronizzazione peer i comandi specifici necessari per l'interazione con il database peer, ad esempio InsertCommand che applica gli inserimenti da un database peer all'altro database peer. Poiché gli adattatori di sincronizzazione utilizzano l'oggetto ADO.NETDbCommand, è possibile utilizzare qualsiasi struttura di comandi supportata da ADO.NET, tra cui Transact-SQL inline, stored procedure, viste, funzioni e così via. I comandi richiedono un solo risultato che definisce la struttura e i dati da trasferire e applicare.

Esempio

Nell'esempio di codice seguente viene creato un oggetto SyncAdapter per la tabella Customer, viene specificato che la colonna CustomerId dovrebbe essere utilizzata per identificare ogni riga della tabella e viene specificato il comando per la proprietà SelectIncrementalChangesCommand. La stored procedure chiamata è definita in Impostare script per le procedure relative ai provider di database. Per ulteriori informazioni sui comandi dell'adattatore e per visualizzare il codice nel contesto di un esempio completo, vedere Procedura: eseguire il provisioning di un database server per la sincronizzazione in scenari di collaborazione (non SQL Server).

DbSyncAdapter adapterCustomer = new DbSyncAdapter("Customer");


//Specify the primary key, which Sync Framework uses
//to identify each row during synchronization.
adapterCustomer.RowIdColumns.Add("CustomerId");
SqlCommand chgsCustomerCmd = new SqlCommand();
chgsCustomerCmd.CommandType = CommandType.StoredProcedure;
chgsCustomerCmd.CommandText = "Sync.sp_Customer_SelectChanges";
chgsCustomerCmd.Parameters.Add("@" + DbSyncSession.SyncMetadataOnly, SqlDbType.Int);
chgsCustomerCmd.Parameters.Add("@" + DbSyncSession.SyncMinTimestamp, SqlDbType.BigInt);
chgsCustomerCmd.Parameters.Add("@" + DbSyncSession.SyncScopeLocalId, SqlDbType.Int);
chgsCustomerCmd.Parameters.Add("@" + DbSyncSession.SyncInitialize, SqlDbType.Int);

adapterCustomer.SelectIncrementalChangesCommand = chgsCustomerCmd;
Dim adapterCustomer As New DbSyncAdapter("Customer")

'Specify the primary key, which Sync Framework uses
'to identify each row during synchronization.
adapterCustomer.RowIdColumns.Add("CustomerId")
Dim chgsCustomerCmd As New SqlCommand()

With chgsCustomerCmd
    .CommandType = CommandType.StoredProcedure
    .CommandText = "Sync.sp_Customer_SelectChanges"
    .Parameters.Add("@" + DbSyncSession.SyncMetadataOnly, SqlDbType.Int)
    .Parameters.Add("@" + DbSyncSession.SyncMinTimestamp, SqlDbType.BigInt)
    .Parameters.Add("@" + DbSyncSession.SyncScopeLocalId, SqlDbType.Int)
    .Parameters.Add("@" + DbSyncSession.SyncInitialize, SqlDbType.Int)
End With

adapterCustomer.SelectIncrementalChangesCommand = chgsCustomerCmd

Gerarchia di ereditarietà

System.Object
  Microsoft.Synchronization.Data.DbSyncAdapter

Thread Safety

Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread safe. I membri di istanza non hanno garanzia di essere thread safe.

Vedere anche

Riferimento

Membri DbSyncAdapter
Spazio dei nomi Microsoft.Synchronization.Data