C# 列出Dynamics CRM 2013/2015中的实体关系

C# 列出Dynamics CRM 2013/2015中的实体关系,c#,powershell,dynamics-crm,crm,microsoft-dynamics,C#,Powershell,Dynamics Crm,Crm,Microsoft Dynamics,是否可以使用CRM/XRM SDK返回特定类型实体(而不是单个记录)上的关系列表 例如,如果我有一个名为“Case”的实体,我需要查看它是否与“MyCustomEntity”有关系,是否可以在CRM中查询“Case”实体的架构并找到关系列表,检查与“MyCustomEntity”相关的关系。类似于在Customisations中展开“1:N关系”选项卡 我找到了这篇解释创建新关系的文章,但没有地方说“这些是X拥有的关系”如果您通过元数据服务检索实体,您可以通过RetrieveEntityResp

是否可以使用CRM/XRM SDK返回特定类型实体(而不是单个记录)上的关系列表

例如,如果我有一个名为“Case”的实体,我需要查看它是否与“MyCustomEntity”有关系,是否可以在CRM中查询“Case”实体的架构并找到关系列表,检查与“MyCustomEntity”相关的关系。类似于在Customisations中展开“1:N关系”选项卡


我找到了这篇解释创建新关系的文章,但没有地方说“这些是X拥有的关系”

如果您通过元数据服务检索实体,您可以通过RetrieveEntityResponse上的EntityMetadata属性访问这些关系。以下是一个例子:

     RetrieveEntityRequest retrieveBankAccountEntityRequest = new RetrieveEntityRequest
     {
         EntityFilters = EntityFilters.Relationships,
         LogicalName = "account"
     };
     RetrieveEntityResponse retrieveBankAccountEntityResponse = (RetrieveEntityResponse)service.Execute(retrieveBankAccountEntityRequest);

     var oneToNRelationships = retrieveBankAccountEntityResponse.EntityMetadata.OneToManyRelationships;

以下是响应的属性列表:

如果通过元数据服务检索实体,则可以通过RetrieveEntityResponse上的EntityMetadata属性访问关系。以下是一个例子:

     RetrieveEntityRequest retrieveBankAccountEntityRequest = new RetrieveEntityRequest
     {
         EntityFilters = EntityFilters.Relationships,
         LogicalName = "account"
     };
     RetrieveEntityResponse retrieveBankAccountEntityResponse = (RetrieveEntityResponse)service.Execute(retrieveBankAccountEntityRequest);

     var oneToNRelationships = retrieveBankAccountEntityResponse.EntityMetadata.OneToManyRelationships;

以下是响应的属性列表:

如果您只需要关系,则可以使用
EntityFilters.relationships
而不是
EntityFilters.all
来检索和传输轻微的性能波动。它可能不会产生重大影响,但最佳做法是检索的实体元数据不会超过代码所需的数量。如果您只需要关系,则可以使用
EntityFilters.relationships
,而不是
EntityFilters.all
,以减少检索和传输的性能波动。它可能不会产生重大影响,但最佳实践是检索的实体元数据不会超过代码所需的数量。