我有一个实体。该实体的类型是活动。我想设置这个实体关于obobctid字段值,然后我想创建记录。每个记录的关于obobctid字段可以显示不同的实体。即我设置这个字段" a"实体,然后我可以用" b"设置这个字段。下一条记录的实体。我只有" a"和" b"实体的逻辑名称。我使用logicalname获取对象类型代码。我用这个对象类型代码获取实体元数据。如何使用C#从实体元数据或对象类型代码中获取实体ID。如果我采用实体id(a或b)然后我将其设置为aboutobjectid,这是在活动类型实体。
答案 0 :(得分:0)
你的措辞很混乱。这是一个我认为涵盖你想要实现的目标的例子。
创建联系人,然后创建一个任务,其中填写了联系人的相关字段。
Entity contact = new Entity("contact");
contact["lastname"] = "Test Contact";
Guid contactId = service.Create(contact);
Entity task = new Entity("task");
task["subject"] = "Test Task";
task["regardingobjectid"] = new EntityReference("contact", contactId);
service.Create(task);
您还可以像这样更新现有任务:
Entity task2 = new Entity("task");
task2.Id = new Guid(...);
task2["regardingobjectid"] = new EntityReference("contact", contactId);
service.Create(task);
您可以通过多种方式获取记录ID(在new Guid(...)
或此处使用contactId
)。
记录ID是指CRM中的特定记录,例如表格中的一行。
如果您使用服务调用创建了记录,则会返回您的ID 立即
Entity contact = new Entity("contact");
...
Guid recordId = service.Create(contact);
您可以从CRM查询记录ID。进一步阅读:IOrganizationService.RetrieveMultiple。
Guid recordId = Service.RetrieveMultiple(new QueryExpression("contact")).Entities.First().Id;
如果您从CRM返回Entity
个对象,则始终会从Id
属性中获取其记录ID。
Entity contact = new Entity("contact");
Guid recordId = contact.Id;
附注
对象类型代码(也称为实体类型代码)
这通常不用于任何事情,它是一个使用次数很少的数据 - 我很少发现它有用或使用它。
类型代码可用于指代一种实体,例如但是,使用实体模式名称是优选的,例如,联系人,案例等。 contact
,incident
等
同样值得记住的是,这是不可靠的 - 特别是在自定义实体的情况下。
始终使用实体架构名称(SchemaName)来引用自定义 代码和查询中的实体。不要使用对象类型代码(也是 称为实体类型)代码,因为其整数值不同 不同组织中的自定义实体。
元数据服务
您可以使用元数据服务来接收(和操作)有关系统配置的信息。例如。您拥有哪些实体以及这些实体具有哪些字段。但是,它不会为您提供有关特定记录的信息。
进一步阅读:The metadata and data models in Microsoft Dynamics 365。