2012-05-31 2 views
0

FilterClause를 추가 한 후 삭제가 더 이상 작동하지 않습니다.동기화 프레임 워크 - FilterClause를 추가 한 후 삭제가 작동하지 않습니다.

JUNET 내가 Users_tracking에 IsPublished 열을 볼 수 없습니다, filter on tracking table which is 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

IsPublished 열은

다른 범위의 테이블 부분입니다 ... 추적 테이블의 하단에? 다른 범위를 추가하고 있습니까?

+0

코드와 스크린 샷을 업데이트했습니다. 감사! – Win

+0

다시 기존 대상이 대상에 있습니까? 또는 두 데이터베이스 모두에서 범위를 시작하지 않습니까? – JuneT

+0

'TestScope'라는 이름의 소스와 대상에 하나의 범위 만 있습니다. – Win

관련 문제