什么是实体参考定义

时间:2017-08-06 22:41:14

标签: c# entity dynamics-crm dynamics-crm-2011 entityreference

我试图理解实体引用的使用(在crm 2011中)我在网上发现了许多实体引用的例子,主要是查找字段,但我需要一个绝对的descreption。实体引用仅用于查找字段吗?我可以使用一个简单的实体来获取我的数据吗?可以实体替换实体引用吗? 我的问题不仅仅是关于实体引用和实体之间的区别,还涉及实体引用的定义以及使用它的原因/位置。 有人可以让这个主题明确。

1 个答案:

答案 0 :(得分:10)

在Dynamics CRM中,开发记录称为实体,由属性组成。当属性是查找(即,对另一个实体的引用)时,它是EntityReference类型。 EntityReference类型是必需的,因为它必须传达实体的逻辑名称和特定记录的id(a Guid)。

    IOrganizationService service = GetService(); //TODO: Implement GetService()

//From: https://msdn.microsoft.com/en-us/library/gg328149.aspx

Entity contact = new Entity("contact");
contact.Attributes["firstname"] = "ContactFirstName";
contact.Attributes["lastname"] = "ContactLastName";
Guid contactId = service.Create(contact);

Entity account = new Entity("account");
account["name"] = "Test Account1";
EntityReference primaryContactId = new EntityReference("contact", contactId);
account["primarycontactid"] = primaryContactId;

由于类型不同,Entity对象不能用作EntityReferenceEntity上有一种方法可以返回EntityReferenceEntity.ToEntityReference()

重要

关于EntityReference的关键是它包含记录的逻辑名称 id

Dynamics CRM中有几个区域,例如使用Customer数据类型时,Lookup可能引用多个实体类型。在这些情况下,Dynamics CRM无法仅依赖Guid作为记录标识符。