Dynamics crm 2011 通过N:N关系中的多个ID获取实体

Dynamics crm 2011 通过N:N关系中的多个ID获取实体,dynamics-crm-2011,crm,Dynamics Crm 2011,Crm,特定实体: 团队,用户。它们之间的关系是N:N 问题: 如何查找属于指定团队的用户(具有给定的ID列表) 附言。 我发现如何处理单个团队,但不知道如何处理团队列表 var团队\u id=。。。 QueryExpression query=新的QueryExpression(“用户”); //建立团队和用户之间的关系 关系rel=新关系(); rel.SchemaName=“新团队\用户”; RelationshipQueryCollection relatedEntity=新建Relations

特定实体: 团队,用户。它们之间的关系是N:N

问题: 如何查找属于指定团队的用户(具有给定的ID列表)

附言。 我发现如何处理单个团队,但不知道如何处理团队列表

var团队\u id=。。。
QueryExpression query=新的QueryExpression(“用户”);
//建立团队和用户之间的关系
关系rel=新关系();
rel.SchemaName=“新团队\用户”;
RelationshipQueryCollection relatedEntity=新建RelationshipQueryCollection();
relatedEntity.Add(rel,query);
RetrieverRequest=新建RetrieverRequest();
request.RelatedEntitiesQuery=relatedEntity;
request.ColumnSet=newcolumnset(新字符串[]{“id”});
request.Target=newentityreference{Id=team\u Id,LogicalName=“new\u team”};
//结果:按团队id列出的用户列表。
RetrieverResponse response=(RetrieverResponse)CrmService.Execute(请求);

您可以将您的主要实体设置为交叉点实体,因此在您的示例中,它将是“TeamMembership”,然后根据属性“SystemUserId”设置标准

要获得有关团队的更多信息,需要将团队实体作为链接实体添加到查询中,如下所示

 LinkEntity TeamLink = new LinkEntity();
            TeamLink .EntityAlias = "TeamLink ";
            TeamLink .JoinOperator = JoinOperator.Inner;
            TeamLink .LinkFromEntityName = "teammembership";
            TeamLink .LinkFromAttributeName = "teamid";
            TeamLink .LinkToEntityName = "team";
            TeamLink .LinkToAttributeName = "teamid";

然后,您可以返回所需的任何列并获取数据。

您可以将主实体设置为交叉实体,因此在您的示例中,它将是“团队成员身份”,然后将根据属性“SystemUserId”设置条件

要获得有关团队的更多信息,需要将团队实体作为链接实体添加到查询中,如下所示

 LinkEntity TeamLink = new LinkEntity();
            TeamLink .EntityAlias = "TeamLink ";
            TeamLink .JoinOperator = JoinOperator.Inner;
            TeamLink .LinkFromEntityName = "teammembership";
            TeamLink .LinkFromAttributeName = "teamid";
            TeamLink .LinkToEntityName = "team";
            TeamLink .LinkToAttributeName = "teamid";

然后,您可以返回所需的任何列并获取数据。

您可以将主实体设置为交叉实体,因此在您的示例中,它将是“团队成员身份”,然后将根据属性“SystemUserId”设置条件

要获得有关团队的更多信息,需要将团队实体作为链接实体添加到查询中,如下所示

 LinkEntity TeamLink = new LinkEntity();
            TeamLink .EntityAlias = "TeamLink ";
            TeamLink .JoinOperator = JoinOperator.Inner;
            TeamLink .LinkFromEntityName = "teammembership";
            TeamLink .LinkFromAttributeName = "teamid";
            TeamLink .LinkToEntityName = "team";
            TeamLink .LinkToAttributeName = "teamid";

然后,您可以返回所需的任何列并获取数据。

您可以将主实体设置为交叉实体,因此在您的示例中,它将是“团队成员身份”,然后将根据属性“SystemUserId”设置条件

要获得有关团队的更多信息,需要将团队实体作为链接实体添加到查询中,如下所示

 LinkEntity TeamLink = new LinkEntity();
            TeamLink .EntityAlias = "TeamLink ";
            TeamLink .JoinOperator = JoinOperator.Inner;
            TeamLink .LinkFromEntityName = "teammembership";
            TeamLink .LinkFromAttributeName = "teamid";
            TeamLink .LinkToEntityName = "team";
            TeamLink .LinkToAttributeName = "teamid";

然后,您可以返回所需的任何列并取出数据。

QueryExpression build on intersect entity将对您有所帮助。例如,我使用了产品和竞争对手的N:N关系

QueryExpression qe=newqueryexpression()
{
EntityName=“competitorproduct”,//此名称可以从N:N rel属性(关系表单,关系实体名称字段)获取
ColumnSet=新的ColumnSet(真),
};
qe.Criteria.AddCondition(
“竞争对手”,
在,,
新对象[]{“GUID1”、“GUID2”});
//下面是可选的-如果您需要实体的一些详细信息,请添加LinkEntity对象。此示例添加产品实体中的所有字段
LinkEntity lePorduct=新的LinkEntity(“competitorproduct”、“product”、“productid”、“productid”、JoinOperator.Inner);
lePorduct.Columns=新列集(true);
qe.linkenties.Add(lePorduct);

基于intersect实体构建的QueryExpression将帮助您。例如,我使用了产品和竞争对手的N:N关系

QueryExpression qe=newqueryexpression()
{
EntityName=“competitorproduct”,//此名称可以从N:N rel属性(关系表单,关系实体名称字段)获取
ColumnSet=新的ColumnSet(真),
};
qe.Criteria.AddCondition(
“竞争对手”,
在,,
新对象[]{“GUID1”、“GUID2”});
//下面是可选的-如果您需要实体的一些详细信息,请添加LinkEntity对象。此示例添加产品实体中的所有字段
LinkEntity lePorduct=新的LinkEntity(“competitorproduct”、“product”、“productid”、“productid”、JoinOperator.Inner);
lePorduct.Columns=新列集(true);
qe.linkenties.Add(lePorduct);

基于intersect实体构建的QueryExpression将帮助您。例如,我使用了产品和竞争对手的N:N关系

QueryExpression qe=newqueryexpression()
{
EntityName=“competitorproduct”,//此名称可以从N:N rel属性(关系表单,关系实体名称字段)获取
ColumnSet=新的ColumnSet(真),
};
qe.Criteria.AddCondition(
“竞争对手”,
在,,
新对象[]{“GUID1”、“GUID2”});
//下面是可选的-如果您需要实体的一些详细信息,请添加LinkEntity对象。此示例添加产品实体中的所有字段
LinkEntity lePorduct=新的LinkEntity(“competitorproduct”、“product”、“productid”、“productid”、JoinOperator.Inner);
lePorduct.Columns=新列集(true);
qe.linkenties.Add(lePorduct);

基于intersect实体构建的QueryExpression将帮助您。例如,我使用了产品和竞争对手的N:N关系

QueryExpression qe=newqueryexpression()
{
EntityName=“competitorproduct”,//此名称可以从N:N rel属性(关系表单,关系实体名称字段)获取
ColumnSet=新的ColumnSet(真),
};
qe.Criteria.AddCondition(
“竞争对手”,
在,,
新对象[]{“GUID1”、“GUID2”});
//下面是可选的-如果您需要实体的一些详细信息,请添加LinkEntity对象。此示例添加产品实体中的所有字段
LinkEntity lePorduct=新的LinkEntity(“competitorproduct”、“product”、“productid”、“productid”、JoinOperator.Inner);
lePorduct.Columns=新列集(true);
qe.linkenties.Add(lePorduct);

您是在查询标准CRM“用户”和“团队”实体,还是自定义实体?示例中的架构名称具有表示自定义关系的
new
前缀。此外,crm中没有
用户
实体。用户存储在名为
systemuser
的实体中“用户”只是一个显示名称。它只是一个示例。拼写没有问题