删除后可以重复使用Primary-Keys吗?

Luk*_*lch 1 import primary-key duplicates dynamics-crm dynamics-crm-4

0x80040237无法插入重复键.

我正在尝试通过CrmService为MSCRM4.0编写导入例程.直到这一点,这已经取得了成功.最初我只是让CRM生成记录的主键.但我的客户希望能够将我们的自定义实体的密钥设置为预定义的值.这可能使我们知道安装程序创建了哪些数据,以及安装后创建了哪些数据.

我测试过以确保在调用CrmService.Update()方法时可以设置Guids,结果表明记录是使用我们想要的值创建的.我运行了我的导入,一切似乎都成功了.在修改导入文件的验证代码时,我删除了数据(通过crm浏览器界面)并尝试重新导入.不幸的是现在它抛出并出现重复键错误.

为什么抛出这个错误?Crm接口是否删除了记录,或者它是否仍然存在但是隐藏在用户眼中?有没有办法确保永久删除已删除的记录并使Guid免费?在现场环境中,这些Guids永远不会存在,但在我的开发过程中,我需要这些导入才能成功.

顺便说一下,考虑到我有这个问题,这是否意味着静态设置Guids不是推荐的做法?

Zah*_*r J 6

到目前为止,我可以告诉实体被软删除,因此除非您(或删除服务)将实体从数据库中删除,否则无法重用该Guid.

例如,在LeadBase表中,您将找到一个名为DeletionStateCode的字段,值为0表示该记录尚未删除.

值为2表示删除记录.有一个删除服务,每2(?)小时运行一次,从表中物理删除这些记录.