2011-04-05 42 views
0

我正在使用Microsoft Sync Frameowrk,它帶來了我的表,但它沒有拉過外鍵?我已經確定父母(PK表)首先被帶過來,因爲我認爲會導致FK失敗。微軟同步 - 沒有帶來外鍵

我在這裏遺漏的是不允許FKs帶同步?

使用SQL Server 2008 R2和SQL Server 2008 R2 Express。我相信我正在使用Sync 2.1框架。

任何建議將不勝感激。

謝謝,

小號

回答

2

同步Fx的犯規規定FKS和比PK其他其他約束。你將不得不編寫你的FK並通過編程來應用它們。

+0

感謝@JuneT我欣賞它從你的數據庫中的外鍵 – scarpacci 2011-04-06 12:53:52

0

ServerSyncProvider創建一個DataSet,ClientSyncProvider用它來填充客戶端數據庫上的表。默認提供的功能(如您所提到的)不包括外鍵約束。 (我不知道爲什麼......似乎纔有意義)

這可能是最簡單的覆蓋ServerSyncProvider的的getSchema方法是這樣的:

public override SyncSchema GetSchema(Collection<string> tableNames,SyncSession syncSession) 
{ 
    var schema = base.GetSchema(tableNames,syncSession); 
    schema.SchemaDataSet.Tables["Table1"].Constraints.Add(new ForeignKeyConstraint(...)); 
    return schema; 
} 

的ClientSyncProvider將外鍵腳本基於它發現數據集中

當然,你可能想退出編程就像http://blog.sqlauthority.com/2006/11/01/sql-server-query-to-display-foreign-key-relationships-and-name-of-the-constraint-for-each-table-in-database/