Microsoft Sync框架删除无法正常工作 [英] Microsoft Sync framework delete not working

查看:153
本文介绍了Microsoft Sync框架删除无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经用两种方式在SQL Server 2008和SQL Compact数据库之间实现了同步。



完美地处理数据库中的插入和更新数据并且很好地同步。



但是如果我尝试从sql server之类的一个数据库中删除一条记录,那么我将与sql compact同步后再次回来。



如果我从一个数据库中删除记录,则需要从其他数据库中删除。



我不知道为什么它再次回来请帮助我。



我在这里给出的源代码。



I have implemented synchronize between SQL server 2008 and SQL Compact database with two way.

It is perfectly working with insert and update data in database and synced very well.

But if I try to delete a record from one database like sql server after that i synced with sql compact it is come back again.

I want that if I delete record from one database it is necessary to delete from other database.

I don't know why it is come back again please help me.

My source code given here.

string serverCon = "Data Source=192.168.0.2\\sqlserver2008r2;Initial Catalog=test;Integrated Security=false;UID=sa;PWD=ifour@1234;";
        const string localCon = "Data Source=|DataDirectory|\\DB\\test.sdf;Persist Security Info=False;";


        var serverConn = new SqlConnection(serverCon);
        var clientSqlConn = new SqlCeConnection(localCon);



        DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("filter");

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

        SqlSyncScopeDeprovisioning serverSqlDepro = new SqlSyncScopeDeprovisioning(serverConn);
        SqlSyncScopeProvisioning serverTemplate = new SqlSyncScopeProvisioning(serverConn, scopeDesc, SqlSyncScopeProvisioningType.Template);
        serverTemplate.ObjectSchema = "dbo";

        serverTemplate.Tables["Demo"].AddFilterColumn("bit");
        serverTemplate.Tables["Demo"].FilterClause = "[side].[bit] = @customertype";
        SqlParameter param = new SqlParameter("@customertype", SqlDbType.Bit, 1);
        serverTemplate.Tables["Demo"].FilterParameters.Add(param);

        if (serverTemplate.TemplateExists("filter"))
        {
            serverSqlDepro.DeprovisionTemplate("filter");
        }

        serverTemplate.Apply();


        SqlSyncScopeProvisioning serverProvRetail = new SqlSyncScopeProvisioning(serverConn);
        serverProvRetail.ObjectSchema = "dbo";
        serverProvRetail.PopulateFromTemplate("RetailCustomers", "filter");
        serverProvRetail.Tables["Demo"].FilterParameters["@customertype"].Value = false;


        if (serverProvRetail.ScopeExists("filter"))
        {
            serverSqlDepro.DeprovisionScope("filter");
        }
        //serverProvRetail.PopulateFromScopeDescription(scopeDesc);
        serverProvRetail.Apply();
        serverProvRetail.PopulateFromScopeDescription(scopeDesc);
        SqlCeSyncScopeDeprovisioning clientSqlCeDepro = new SqlCeSyncScopeDeprovisioning(clientSqlConn);
        var clientSqlDesc = SqlSyncDescriptionBuilder.GetDescriptionForScope("RetailCustomers", null, "dbo", serverConn);
        var clientSqlConfig = new SqlCeSyncScopeProvisioning(clientSqlConn, clientSqlDesc);

        if (clientSqlConfig.ScopeExists("RetailCustomers"))
        {
            clientSqlCeDepro.DeprovisionScope("RetailCustomers");
        }

        clientSqlConfig.Apply();

        SampleSyncOrchestrator syncOrchestrator;
        SyncOperationStatistics syncStats;

        // Data is downloaded from the server to the SQL Server client.
        syncOrchestrator = new SampleSyncOrchestrator(
            new SqlCeSyncProvider("RetailCustomers", clientSqlConn, null),
            new SqlSyncProvider("RetailCustomers", serverConn, null, "dbo")
            );
        syncStats = syncOrchestrator.Synchronize();
    }

public class SampleSyncOrchestrator : SyncOrchestrator
{
        public  SampleSyncOrchestrator(RelationalSyncProvider localProvider, RelationalSyncProvider remoteProvider)
        {

        this.LocalProvider = localProvider;
        this.RemoteProvider = remoteProvider;
        this.Direction = SyncDirectionOrder.DownloadAndUpload;
        }
}

推荐答案

这篇关于Microsoft Sync框架删除无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆