2011-05-28 69 views
1

我試圖用SQL精簡3.5同步框架2.1同步相對錶中的同步框架2.1

幫助的SQL Express 2008同步,我有2個表

  • 客戶(PK標識,字符串名稱)
  • 訂單(PK標識,詮釋價格,串 名稱,FK CUSTOMER_ID)

我使用下面的代碼

public static void CreateScope(string userName) 
{ 
var serverConn = new SqlConnection(@"Data Source=.\SQLEXPRESS; Initial Catalog=Test; Integrated Security=True"); 

var scopeDescription = new DbSyncScopeDescription(string.Format("Customer-{0}", userID)); 

var customersTable = SqlSyncDescriptionBuilder.GetDescriptionForTable("Customers", serverConn); 
var ordersTable = SqlSyncDescriptionBuilder.GetDescriptionForTable("Orders", serverConn); 

ordersTable.Constraints.Add("FK_Customer_Id", "Customers", "Orders", "Id", "Customer_Id"); 

scopeDesc.Tables.Add(azmanotTable); 
scopeDesc.Tables.Add(customersTable); 

var serverProvision = new SqlSyncScopeProvisioning(serverConn, scopeDesc); 
serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip); 

serverProvision.Tables["Customers"].AddFilterColumn("CustumerName"); 
serverProvision.Tables["Customers"].FilterClause = string.Format("[side].[CustumerName] = '{0}'", userName); 

serverProvision.Apply(); 
} 

的同步過程中我收到過濾「客戶」表我也收到訂單飽滿表時,我想這個數據只子集,我的意思是隻屬於特定客戶的訂單。

我已經嘗試了所有在web中發現的選項,例如更改手動添加外鍵的插入順序,但仍然沒有成功。

由於提前

回答

0

我認爲你有你的問題已經回答了這裏:http://social.msdn.microsoft.com/Forums/en-US/syncdevdiscussions/thread/82235748-fac2-435f-8035-8d8809aeb82d

如前所述,同步Fx的個別/獨立同步表。要過濾訂單表以僅同步屬於同步的客戶行的行,您還必須過濾訂單表以及:

serverProvision.Tables["Orders"].AddFilterColumn("CustomerId"); 
serverProvision.Tables["Customers"].FilterClause = string.Format("[side].[CustomerId] in (Select CustomerId from Customers_tracking where CustomerName = '{0}'", userName);