考虑2个表,员工和位置。
员工
EmpId Name LocationId xxx XYZ yyy xxx ABC zzz
位置
LocationId Location yyy India xxx USA
EmpId和LocationId是uniqueidentifier
类型的主键列。 Employee表中的LocationId是外键,指的是Location表。此外,假设位置表中的位置列存在唯一约束。
步骤1:在客户端和服务器之间进行同步。数据现已更新。
步骤2:在位置表中添加一个新行,其值在服务器和客户端中均为“France”。此外,在employee表中添加引用此新行的新行。
第3步:同步。由于违反了唯一约束,它将失败。 “法国”行在客户端和服务器中都存在不同的主键,当Sync框架尝试插入新行时,唯一约束会阻止它,并且同步失败。
我需要通过将客户端locationid更新为冲突行的服务器locationid来克服此问题。我尝试编写代码以在dbapplychangefailed
事件中更新它,但是,Sync框架会锁定冲突的行,我无法访问它。
非主键列的唯一约束是我的主要问题,如果我能得到该问题的解决方案,我可以在这种情况下实现它。
请指教。提前谢谢。