Sync Framework:如何同步表中的所有列?

时间:2014-01-24 22:59:17

标签: microsoft-sync-framework

我创建了一个程序,用于在两个数据库之间同步表。

我使用这个通用代码:

DbSyncScopeDescription myScope = new DbSyncScopeDescription("myscope");
DbSyncTableDescription tblDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Table", onPremiseConn);
myScope.Tables.Add(tblDesc);

我的程序仅使用主键(id列)创建跟踪表。 同步可以删除和插入行。 但更新没有。我需要更新所有列并且不更新它们(例如:电话栏)。

我读到我需要添加我想要手动同步此代码的列:

Collection<string> includeColumns = new Collection<string>();
includeColumns.Add("telephone");
...
includeColumns.Add(Last column);

以这种方式更改表格描述:

DbSyncTableDescription tblDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Table", includeColumns, onPremiseConn);

有没有办法自动添加表格的所有列? 类似的东西:

Collection<string> includeColumns = GetAllColums("Table");

谢谢,

1 个答案:

答案 0 :(得分:0)

SqlSyncDescriptionBuilder.GetDescriptionForTable(“Table”,onPremiseConn)将包含该表的所有列。

跟踪表仅存储PK和过滤列以及一些Sync Fx特定列。

跟踪是在行级别,而不是列级别。

在同步期间,跟踪表及其基表被连接起来以获得要同步的行。