Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics CRM 2011自定义实体:创建与我的SQL Server外键和主键关系匹配的模型_Sql_Dynamics Crm 2011 - Fatal编程技术网

Dynamics CRM 2011自定义实体:创建与我的SQL Server外键和主键关系匹配的模型

Dynamics CRM 2011自定义实体:创建与我的SQL Server外键和主键关系匹配的模型,sql,dynamics-crm-2011,Sql,Dynamics Crm 2011,我有一个很好的SQL Server数据库设置,有两个表,具有一对多关系。大概是这样的: 类型: ID Type =========== 1 mammal 2 fish 3 insect ID Name Foreign Key ======================= 1 Paris 1 (mammal) 2 Michael 2 (fish) 3 Mardy 1 (mammal) 宠物: ID

我有一个很好的SQL Server数据库设置,有两个表,具有一对多关系。大概是这样的:

类型:

ID   Type
===========
1    mammal    
2    fish    
3    insect
ID    Name   Foreign Key
=======================
1    Paris   1 (mammal)    
2    Michael 2 (fish)    
3    Mardy   1 (mammal)
宠物:

ID   Type
===========
1    mammal    
2    fish    
3    insect
ID    Name   Foreign Key
=======================
1    Paris   1 (mammal)    
2    Michael 2 (fish)    
3    Mardy   1 (mammal)

我究竟如何在CRM中重新创建它?我知道CRM喜欢创建自己的主键GUID和关系字段。我希望保持表格关系的完整性,特别是因为我将定期通过脚本导入大量数据(100多万条记录),而不是通过crm gui创建记录和关系。谢谢。

在相同的情况下,我创建了两个具有附加字段的实体-整数ID。关系为CRM默认关系。如果您想在“Pets”窗体上保留“Type”实体的ID,可以在“Pets”窗体上添加额外的隐藏字段(整数-Type_ID)。并在类型更改时更新此

我认为,如果只从脚本中使用这些实体,那么这个隐藏类型_ID是不必要的。也许查询性能并不理想,但这是可行的:)

编辑:还有一件事,如果您需要在CRM中生成ID,您必须创建用于生成唯一ID的插件,该插件将在EntityCreate上执行


希望能有所帮助

因为CRM将其PK存储为GUI,所以您只能通过这些GUI定义FK

正如lazarus所说,创建Pets和PetTypes实体包括一个
ExternalID int
字段

导入脚本需要为每个要导入的记录查找两个GUID:

read record
lookup PetTypes Guid for PetTypes.ExternalID = [pettype.id from record]
create if not exists
lookup Pets Guid for Pets.ExternalID = [id from record]
create if not exists
set Pets.PetTypes = new EntityReference() with PetTypes.ID (=guid)
save crm record

谢谢devio和lazarus。根据您所说的,我想知道作为外部数据源查询数据是否是前进的方向,特别是因为数据是静态的,不会有任何相关的注释/活动等。根据模型,我确实在CRM中有另一个实体,称为“神”,神创建不同的宠物,所以我想我可以参考宠物在执行“高级查找”或运行报告时,将表键入为外部数据源…这是答案,但devio的更全面。谢谢拉扎勒斯。