Microsoft sync framework 同步框架2.1同一表上的多个筛选作用域

Microsoft sync framework 同步框架2.1同一表上的多个筛选作用域,microsoft-sync-framework,Microsoft Sync Framework,我正在同步数据库。有一个主数据库和其他客户端数据库 我从模板创建了一个过滤范围。设置say UserID=1,然后在服务器和客户端数据库1上创建此作用域 再次 我使用与模板不同的名称创建了一个新的筛选范围。设置say UserID=2,然后在服务器和客户端数据库2上创建此作用域 但当我运行schronization时,它正在与数据库客户机DB 1和客户机DB 2的UserID=1同步 这是我的代码: private static void CreateTemplateScope(SqlConn

我正在同步数据库。有一个主数据库和其他客户端数据库

我从模板创建了一个过滤范围。设置say UserID=1,然后在服务器和客户端数据库1上创建此作用域

再次

我使用与模板不同的名称创建了一个新的筛选范围。设置say UserID=2,然后在服务器和客户端数据库2上创建此作用域

但当我运行schronization时,它正在与数据库客户机DB 1和客户机DB 2的UserID=1同步

这是我的代码:

 private static void CreateTemplateScope(SqlConnection serverConn, string Template, string ScopeName, string TableName, string Condition, string ColumnName, string Operator, string FilterValue)
    {

        DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription(Template);

        scopeDesc.UserComment = "N/A";

        DbSyncTableDescription customerDescription =
            SqlSyncDescriptionBuilder.GetDescriptionForTable(TableName, serverConn);
        scopeDesc.Tables.Add(customerDescription);

        SqlSyncScopeProvisioning serverTemplate = new SqlSyncScopeProvisioning(serverConn, scopeDesc, SqlSyncScopeProvisioningType.Template);

        serverTemplate.Tables[TableName].AddFilterColumn(ColumnName);

        serverTemplate.Tables[TableName].FilterClause = "[side].[" + ColumnName + "] " + Operator + " " + FilterValue;

        serverTemplate.SetCreateProceduresForAdditionalScopeDefault(DbSyncCreationOption.CreateOrUseExisting);

        serverTemplate.Apply();

        SqlSyncScopeProvisioning serverProvRetail = new SqlSyncScopeProvisioning(serverConn);
        serverProvRetail.PopulateFromTemplate(ScopeName, Template);
        serverProvRetail.Apply();

    }
感谢您的帮助


如果您需要更多详细信息,请告诉我

您可以发布客户端配置部分吗?您可以检查scope\u info表已设置了多少个作用域吗?创建了多少个_selectChangesSP,以及范围参数表中的条目。@JuneT很抱歉延迟回复,我对客户端和服务器使用相同的功能。因此,在这种情况下,上述同一函数将被调用四次,但您的过滤器值被硬编码为始终等于注释该行的?@JuneT。我没有使用参数。我只是将值硬记录在模板本身中,并使用函数传递值parameter@JuneT我现在已经删除了注释代码