jue*_*n d 12 c# sql-server synchronization sql-server-ce microsoft-sync-framework
我开发了一个可以在线和离线模式下运行的Windows C#应用程序.
在联机模式下,它连接到SQL Server.在脱机模式下,它连接到本地数据库.
我使用Microsoft Sync Framework 2.1按需同步2个数据库.
到目前为止,我使用SQL Server的LocalDB实例作为本地数据库.但是在我的应用程序的安装过程中自动设置系统是一件痛苦的事.所以我尝试使用非常容易分发的SQL Server Compact 3.5或4.0(来自单个文件).
但我甚至无法编译Compact DB的配置代码:
DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("MyScope");
SqlCeConnection clientConn = new SqlCeConnection(OfflineConnectionString);
var clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
clientProvision.Apply();
Run Code Online (Sandbox Code Playgroud)
我之前使用过(没有Ce类)但SqlCeSyncScopeProvisioning无法解决.
这里有些非常错误.
如何同步我的CompactDB以将其作为本地数据库分发?
首先确保您已成功安装sdk?
在此之后,请确保添加了以下参考:
Microsoft.Synchronization.Data.dll,
Microsoft.Synchronization.Data.Server.dll
在我的情况下,它也适用于添加
编辑
根据您的评论,这仅在您使用SQL Server CE 4 时才有效.
我现在尝试使用SQL Server CE 3.5,实际上我可以重现你的问题.
切换到SQL Server CE 4.0修复它.
ExampleTable 4.0
TestCode
var scopeDesc = new DbSyncScopeDescription("MyScope");
var tbl = new DbSyncTableDescription("TestTable");
var pkColumn = new DbSyncColumnDescription("Id", "int");
pkColumn.IsPrimaryKey = true;
tbl.Columns.Add(pkColumn);
tbl.Columns.Add(new DbSyncColumnDescription("Name", "nvarchar(254)"));
scopeDesc.Tables.Add(tbl);
var clientConn = new SqlCeConnection(@"Data Source=test.sdf;Persist Security Info=False;");
var clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
clientProvision.Apply();
Run Code Online (Sandbox Code Playgroud)
结果
一切都汇编得很好.执行上述步骤后,您应该能够轻松地将代码迁移到SQL Server CE
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |