Dynamics crm 2011 Dynamics CRM-获取关系的名称

Dynamics crm 2011 Dynamics CRM-获取关系的名称,dynamics-crm-2011,relationship,Dynamics Crm 2011,Relationship,是否有任何方法可以从实体和实体获取关系的名称 我有一段相当动态的代码,需要关联或取消关联实体。为了调用这些函数,我需要知道关系的名称。我不知道如何确定仅仅给出这两个实体的关系名称 例如,我的代码可能需要解除帐户与联系人的关联。我如何确定“帐户\主要\联系人”的关系名称?以便于回答问题,尽管我不理解您为什么要这样做: foreach(primaryEntityMetadata.manyToneRelationships中的OneToManyRelationshipMetadata关系元数据) {

是否有任何方法可以从实体和实体获取关系的名称

我有一段相当动态的代码,需要
关联
取消关联
实体。为了调用这些函数,我需要知道关系的名称。我不知道如何确定仅仅给出这两个实体的关系名称


例如,我的代码可能需要解除帐户与联系人的关联。我如何确定“帐户\主要\联系人”的关系名称?以便于回答问题,尽管我不理解您为什么要这样做:

foreach(primaryEntityMetadata.manyToneRelationships中的OneToManyRelationshipMetadata关系元数据)
{
if(relationshipMetaData.ReferenceGenty==relatedEntity.LogicalName)
{
字符串relationshipName=relationshipMetaData.SchemaName;
//对你们的关系做点什么?
}
}

其中primaryEntityMetadata的类型为EntityMetadata,ReferenceGenty的类型为Entity。然后使用类似的逻辑检查多对一关系。

您正在运行什么版本的CRM?您必须使用元数据服务调用来检索其中一个实体支持的关系,然后筛选出相关实体不是另一个实体的那些关系。明天我可以写一个更详细的答案,但在此期间,您是否考虑过给定的一对实体可能有不止一种关系?考虑到只有两个实体,以及它们之间的不止一种关系,你没有足够的信息来决定你要针对哪种关系-除非你的想法是使用所有可能的关系来关联/解除关联。在考虑了这一点之后,我认为你试图做的根本上是有缺陷的。在不知道你正在分离什么关系的情况下分离实体是没有意义的。也许更多关于你所处环境的信息可以让我们找到更好的解决方案。在我的情况下,我知道我想让这两个实体彼此分离。例如,从帐户中删除主要联系人。我知道“帐户”名称及其ID,我知道主要联系人的名称及其ID。我只是不知道如何确定“帐户\主要\联系人”的关系名称。有了这个,我可以查找帐户关系名称,其中主要联系人是相关实体。然后,我只需构建实体集合并调用
Associate
\
Disassociate
。这是必要的,因为我的表单本质上是动态的。@TravisParks如果在编译时不知道关系的名称,如何知道在运行时找到了正确的关系?正如我在另一篇评论中提到的,没有什么能阻止同两个实体之间存在不止一种关系。如果您知道事实并非如此,那么为什么在编译时不知道关系的名称呢?@shambulator感谢您重复您的问题。第二次我终于明白你的意思了。在我们的系统中,我们有
modifiedby
createdby
ownerid
,等等,它们将帐户链接到用户。仅仅了解双方是不够的。幸运的是,我们的CRM管理员有洞察力想出了一个命名约定。它始终遵循
left\u right\u属性
命名约定。如果你没有重复你自己,我可能会意外地毁掉其他关系。呸!