GUID 00000000-0000-0000-0000-000000000000导致合并索引违规

RTh*_*mas 3 sql-server-2008 linq-to-sql merge-replication

我们的开发人员有一个与我的数据库对话的linq-2-sql项目.数据库涉及合并复制.它已经使用了一段时间,并且工作正常.最近的一个表被添加到模式中,现在在添加新记录时引起问题.

用户得到一条错误消息,指出与合并复制自动创建的guid相关的索引违反了唯一约束.

据我所知,该表与其他参与者没有任何不同.我已经从头开始重新创建了整个复制发布/订阅模型,一切都继续工作但只有一个表.

有人有主意吗?正在创建的guid显示为00000000-0000-0000-0000-000000000000,这可以解释为什么它是重复的.为什么linq没有创建有效的guid?

Mar*_*lug 14

当您的意思是"Guid.NewGuid()"时,您是否在代码库中的某处使用了"new Guid()"?


Vin*_*nay 5

我也遇到过类似的问题。正如 Mark 在评论中提到的,需要正确使用 Guid()。

Guid asm = new Guid(); // gives 00000000-0000-0000-0000-000000000000
Run Code Online (Sandbox Code Playgroud)

而是使用

Guid asm = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)