我试图理解实体引用的使用(在crm 2011中)我在网上发现了许多实体引用的例子,主要是查找字段,但我需要一个绝对的descreption。实体引用仅用于查找字段吗?我可以使用一个简单的实体来获取我的数据吗?可以实体替换实体引用吗? 我的问题不仅仅是关于实体引用和实体之间的区别,还涉及实体引用的定义以及使用它的原因/位置。 有人可以让这个主题明确。
答案 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
对象不能用作EntityReference
。 Entity
上有一种方法可以返回EntityReference
,Entity.ToEntityReference()
。
重要强>
关于EntityReference
的关键是它包含记录的逻辑名称和 id 。
Dynamics CRM中有几个区域,例如使用Customer数据类型时,Lookup可能引用多个实体类型。在这些情况下,Dynamics CRM无法仅依赖Guid
作为记录标识符。