2011-05-28 43 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);