2012-05-31 12 views
0

添加FilterClause後,刪除不再工作。同步框架 - 添加FilterClause後刪除不起作用

JuneT說filter on tracking table which is Users_tracking

不過,我看不出|評論列Users_tracking;我只看到UserId。

謝謝你的幫助!

private static void ProvisionLocal(
    SqlConnection sqlLocalConn, DbSyncScopeDescription scopeDesc) 
{ 
    var Users = SqlSyncDescriptionBuilder 
    .GetDescriptionForTable("Users", sqlLocalConn); 

    scopeDesc.Tables.Add(Users); 

    var sqlLocalProv = new SqlSyncScopeProvisioning(sqlLocalConn, scopeDesc); 
    sqlLocalProv.CommandTimeout = 3600; 

    sqlLocalProv.Tables["Users"].AddFilterColumn("IsPublished"); 
    sqlLocalProv.Tables["Users"].FilterClause = 
     string.Format("[side].[IsPublished] = {0}", 1); 

    if (!sqlLocalProv.ScopeExists("TestScope")) 
    { 
    sqlLocalProv.Apply(); 
    } 
} 

private static void ProvisionRemote( 
    SqlConnection sqlRemoteConn, DbSyncScopeDescription scopeDesc) 
{ 
    var sqlRemoteProv = new SqlSyncScopeProvisioning(sqlRemoteConn, scopeDesc); 
    sqlRemoteProv.CommandTimeout = 3600; 

    if (!sqlRemoteProv.ScopeExists("TestScope")) 
    { 
    // Apply the scope provisioning. 
    sqlRemoteProv.Apply(); 
    } 
} 

public void Synchronize() 
{  
    var sqlSourceConn = new SqlConnection("..."); 
    var sqlDestinationConn = new SqlConnection("..."); 

    var scopeDesc = new DbSyncScopeDescription("TestScope"); 

    ProvisionLocal(type, sqlSourceConn, scopeDesc); 
    ProvisionRemote(type, sqlDestinationConn, scopeDesc); 

    // Prepare for synchronization 
    var localProvider = new SqlSyncProvider("TestScope", sqlSourceConn); 

    var remoteProvider = new SqlSyncProvider("TestScope", sqlDestinationConn); 
    remoteProvider.ApplyChangeFailed += RemoteProvider_ApplyChangeFailed; 

    var orch = new SyncOrchestrator(); 
    orch.RemoteProvider = remoteProvider; 
    orch.LocalProvider = localProvider; 
    orch.Direction = SyncDirectionOrder.Upload; 

    SyncOperationStatistics stats = orch.Synchronize(); 

    sqlDestinationConn.Close(); 
    sqlSourceConn.Close(); 
} 

enter image description here

回答

1

的|評論欄中的跟蹤表的底部...

是另一個範圍的表的一部分?你添加另一個範圍?

+0

我更新了代碼和屏幕截圖。謝謝! – Win

+0

再次,你是否已經在目的地上有一個現有的範圍?或者你是否在兩個數據庫上都沒有作用域? – JuneT

+0

我在源和目標中只有一個名爲'TestScope'的作用域。 – Win