我创建了一个程序,用于在两个数据库之间同步表。
我使用这个通用代码:
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");
谢谢,
答案 0 :(得分:0)
SqlSyncDescriptionBuilder.GetDescriptionForTable(“Table”,onPremiseConn)将包含该表的所有列。
跟踪表仅存储PK和过滤列以及一些Sync Fx特定列。
跟踪是在行级别,而不是列级别。
在同步期间,跟踪表及其基表被连接起来以获得要同步的行。