Synchronization MS Sync Framework:未将表架构复制到本地数据库

Synchronization MS Sync Framework:未将表架构复制到本地数据库,synchronization,Synchronization,我在项目中使用MS Sync Framework 2.0。我使用MS SQL Server 2005作为主数据库,使用SQL CE 3.5作为客户端数据库。除了没有将主数据库中的模式复制到本地数据库之外,其他一切都正常工作 例如: 我有一个表,其中的PK列具有uniqueidentifier数据类型和NEWID()默认值。但当模式下载到本地数据库时,会复制PK列,但默认值(NEWID())不会反映到本地数据库模式 有什么解决办法吗?是否有要求?因此当前的Microsoft Sync Framew

我在项目中使用MS Sync Framework 2.0。我使用MS SQL Server 2005作为主数据库,使用SQL CE 3.5作为客户端数据库。除了没有将主数据库中的模式复制到本地数据库之外,其他一切都正常工作

例如: 我有一个表,其中的PK列具有uniqueidentifier数据类型和NEWID()默认值。但当模式下载到本地数据库时,会复制PK列,但默认值(NEWID())不会反映到本地数据库模式


有什么解决办法吗?是否有要求?

因此当前的Microsoft Sync Framework(2.0)尚不支持此要求。我所做的是在SqlCeClientSyncProvider类上注册CreatingSchema事件,并为创建的每个表循环,并在PKs处向NEWID()添加一个默认值

声明:

SqlCeClientSyncProvider clientProvider = new SqlCeClientSyncProvider(<connectionstring here>);
clientProvider.CreatingSchema += new EventHandler<Microsoft.Synchronization.Data.CreatingSchemaEventArgs>(clientProvider_CreatingSchema);
if (e.Table.SyncDirection == SyncDirection.Bidirectional)
{
    if (e.Schema.Tables[e.Table.TableName].Columns[0].DataType == typeof(Guid))
       e.Schema.Tables[e.Table.TableName].Columns[0].DefaultValue = "NEWID()";
}