1

我们正在开发偶尔连接的应用程序,它在服务器上的客户端计算机和SQL Server 2008上使用SQL Compact(使用更改跟踪)。该应用程序正在使用实体框架的代码优先模型进行开发,该模型要求本地SQL Compact数据库为4.0。我们希望使用Microsoft Sync Framework处理从中央服务器到偶尔连接的客户端的数据同步,但最近发现虽然SQL Compact 3.5 SP2与Sync Framework兼容,但4.0不是(http://blogs.msdn.com/b/sqlservercompact/archive/2011/01/12/microsoft-sql-server-compact-4-0-is-available-for-download.aspx)。 我们希望为此应用程序使用SQL Compact,以利用Microsoft提供的SQLCEClientSyncProvider,但无法找到与SQL Express等效的产品。看起来我们剩下几个选项:Microsoft Sync Framework,Microsoft Entity Framework 4.1和SQL CE 4.0

1)编写自定义同步提供程序以在客户端利用SQL Express。从我所看到的情况来看,这不是一项简单的任务,而且紧迫的期限使得这项任务风险很大。 2)使用SQL Compact 3.5 SP2并将实体框架代码从“代码优先”模型转换为“模型优先”模型。我不确定这种方法会涉及什么,或者需要多少返工。

我的问题:

是否有使用所有这些技术一起,我们不考虑一个更好的解决方案?哪种方法会成为阻力最小的路径?我惊讶地发现,在我的研究中,在客户端使用Sync Framework与SQL Express并没有得到更完全的支持。 Sync Framework 4.0兼容SQL CE 4.0的地平线吗?

回答

3

Sync Framework有两种类型的数据库提供程序:脱机提供程序和协作/对等提供程序。

脱机提供程序是SqlCeClientSyncProvider/DbServerSyncProvider,它由Visual Studio中的本地数据库缓存项目项目使用,该项目仅支持客户端上的SqlCe。

协作提供者SqlCeSyncProvider/SqlSyncProvider支持客户端和服务器上的SqlCe,Sql Express,Sql Server和Sql Azure。

afaik,在不久的将来没有Sql Ce 4.0支持,并且没有Sync Framework 4.0,只有2.1。 MS最近发布了一个基于V4 CTP的同步框架工具包,但它更多地将客户端支持扩展到非MS平台。

话虽如此,我建议你去SqlCeSyncProvider/SqlSyncProvider组合,因为他们可能需要最少量的定制。

参见:Tutorial: Synchronizing SQL Server and SQL Server Compact

相关问题