【发布时间】:2010-08-09 06:04:52
【问题描述】:
以前也有人问过类似的问题,但经过一天的回答,我仍然很困惑。
我在服务器上使用带有 SQL2008 的 Microsoft Sync Framework,在 Windows Mobile 设备上使用 SQL CE。我会认为这是一个非常普遍的要求。我不想将大表复制到移动设备上。我只想要需要的记录。例如,每个用户都需要他们在工作表之外的“工作”。他们不需要任何其他用户的工作。所以我需要一个设备的“where jobId = 3”和另一个设备的“where jobId = 4”等。
这看起来很有希望:http://jtabadero.spaces.live.com/blog/cns!BF49A449953D0591!1203.entry
但不幸的是,它不适用于我的代码。示例中的这段代码似乎试图获取包含 SQL 的代码:
var remoteProvider = (LocalDataCache1ServerSyncProvider)syncAgent.RemoteProvider;
var selectIncrementalInsertsCommand = remoteProvider.SalesLT_CustomerSyncAdapter.SelectIncrementalInsertsCommand;
但是包含 SQL 的代码(由 VS 生成)位于服务器端,客户端代码中只有一个代理可用。这是添加代理的方式:
// The WCF Service
var webSvcProxy = new MicronetCacheSyncService();
// The Remote Server Provider Proxy
var serverProvider = new ServerSyncProviderProxy(webSvcProxy);
// The Sync Agent
var syncAgent = new MicronetCacheSyncAgent();
syncAgent.RemoteProvider = serverProvider;
那么我怎样才能从客户端获取包含 sql 的服务器端代码呢?抱歉,我没有很好地解释这一点,但我想任何人都不太可能有答案。简短的版本是有人知道限制同步到移动设备的记录的简单方法是这种类型的应用程序吗?我认为该示例适用于桌面应用程序。
在我看来,这个同步框架是微软的另一个半生不熟的版本,实际上只是一个测试版。它开始让我想起以前使用 Entity Framework 1.0 的一些可怕经历:(
【问题讨论】:
标签: c# sql-server windows-mobile microsoft-sync-framework