0

我正在使用VS2008本地數據緩存工具將SqlServer 2008 Db與本地SQL CE 3.5同步。在服務器上,我有一張表,數據類型爲uniqueIdentifier,默認值爲newID()。在通過本地數據緩存它創建此列 不復制默認值DB初始同步(如下所述:http://msdn.microsoft.com/en-us/library/bb726037%28v=SQL.105%29.aspx,請參見」 ..the以下約束不復制到客戶端:外鍵約束,唯一約束和DEFAULT約束...「)未複製本地數據緩存SyncTable架構clientSyncProvider _ CreatingSchema不會觸發

我已經在這裏發現了一個類似的問題: MS Sync Framework: Table schema not copied to local db

但是,當我試圖實施該解決方案,我發現CreatingSchema事件爲clientSyncProvider我的本地數據緩存部分類的不火。

怎麼回事?如何更改本地數據緩存的模式?

感謝您提出任何想法。

+0

我做了架構更改。這裏是我寫的將PK GUID的'defaultvalue'改爲'newid()': 'if e.Table.TableName =「Users」Then' 'If(e.Schema.Tables(「Users」 ).Columns( 「用戶ID」)。數據類型是的GetType(的System.Guid))Then' 'e.Schema.Tables( 「用戶」)。列( 「用戶ID」)。默認值= 「NEWID()」'' End If' 'End If' – Winks

回答

0

什麼是客戶端數據庫的TableCreation選項設置?如果SDF和初始模式是由本地數據庫緩存嚮導創建的,則後續同步將不再創建模式,除非您通過TableCreation選項指定將現有表刪除並替換爲新模式。在部分公共類`LocalDataCacheClientSyncProvider`和事件`CreatingSchema`的代碼隱藏

+0

TableCreation選項是'DropExistingOrCreateNewTable'。 – Winks