【问题标题】:MS Sync 2.1 Sync tables with foreig keysMS Sync 2.1 使用外键同步表
【发布时间】:2011-11-21 14:39:40
【问题描述】:

是否可以在同步范围内有 2 个关联了外键的表。

我在_tracking table: Column 'TransactionLineNo' is constrained to be unique. Value '582da05c-2341-4c57-9795-b532ee0e596f' is already present.收到一条奇怪的消息

TransactionLineNo 是我的表 (TransactionLine) 中的主键,并且在同一范围内添加了 Transaction 表的外键。
我正在使用 MS Sync 2.1 安吉拉

【问题讨论】:

  • 您知道哪个跟踪表失败了吗? Transaction 还是 TransactionLine 表?

标签: .net sync microsoft-sync-framework


【解决方案1】:

重要的是,您的 SyncAdapter 必须按照祖父母、父母、孩子等的顺序定义并添加到 SyncProvider 的适配器集合中,否则您可以获得与您所看到的一样的行为。确保在 TransactionLine 之前将 Transaction 的适配器添加到服务器的 SyncProvider 中。

过去,我使用 INFORMATION_SCHEMA 编写了一个 SQL 存储过程来查询和以编程方式确定构建适配器的顺序,到目前为止,这对我们来说效果很好(关于 INFORMATION_SCHEMA 的 MSDN 可在此处获得,http://msdn.microsoft.com/en-us/library/ms186778.aspx )。

此外,如果您正在调试部分完成的应用程序并通过同步直接将值添加到数据库中,则可能会使客户端和服务器上使用的同步锚不同步,并且在某些情况下可以解决此错误只需删除并重新创建客户端数据库。

【讨论】:

  • 她正在使用不同的数据库提供程序并使用范围而不是同步组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多