Import 主键删除后是否可以重复使用?

Import 主键删除后是否可以重复使用?,import,primary-key,duplicates,dynamics-crm,dynamics-crm-4,Import,Primary Key,Duplicates,Dynamics Crm,Dynamics Crm 4,0x80040237无法插入重复的密钥 我正试图通过CrmService为MSCRM4.0编写一个导入例程。 到目前为止,这是成功的。最初我只是让CRM生成记录的主键。但我的客户希望能够将自定义实体的键设置为预定义值。这可能使我们能够知道安装程序创建了哪些数据,以及安装后创建了哪些数据 我进行了测试,以确保在调用CrmService.Update()方法时可以设置guid,结果表明记录是用我们想要的值创建的。我进行了导入,一切似乎都很成功。在修改导入文件的验证代码时,我删除了数据(通过crm浏览

0x80040237无法插入重复的密钥

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

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

为什么会抛出此错误?Crm界面是否删除了该记录,或者该记录是否仍然存在但隐藏在用户眼前?有没有办法确保已删除的记录被永久删除并且Guid变为自由的?在实时环境中,这些guid永远不会存在,但在我的开发过程中,我需要这些导入才能成功


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

据我所知,实体是软删除的,因此除非您(或删除服务)将实体从数据库中删除,否则无法重用该Guid

例如,在LeadBase表中,您会发现一个名为DeletionStateCode的字段,值为0表示记录尚未删除


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

据我所知,实体是软删除的,因此除非您(或删除服务)将实体从数据库中删除,否则无法重用该Guid

例如,在LeadBase表中,您会发现一个名为DeletionStateCode的字段,值为0表示记录尚未删除


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

我认为Zahir是对的,请尝试运行删除服务,然后重试。这里有一些信息:

我认为Zahir是对的,请尝试运行删除服务,然后重试。这里有一些信息:

扎希尔是正确的

导入和删除记录后,您可以使用选择的时间启动删除服务。这将使测试导入和重新导入更加容易。

Zahir是正确的

导入和删除记录后,您可以使用选择的时间启动删除服务。这将使测试导入和重新导入更容易