因此,目前的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()";
}