1

データベースを同期しています。1 つのメイン データベースと他のクライアント データベースがあります。

テンプレートからフィルター処理されたスコープを作成しました。UserID = 1 と設定し、サーバーとクライアント データベース 1 でこのスコープを作成します。

また

テンプレートとは異なる名前で新しいフィルター処理されたスコープを作成しました。UserID = 2 と設定し、サーバーとクライアント データベース 2 でこのスコープを作成します。

しかし、同期を実行すると、クライアント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();

    }

どんな助けでも大歓迎です。

詳細が必要な場合はお知らせください

4

0 に答える 0