繁体   English   中英

从相交实体 D365 C# 获取相关实体

[英]Getting related entities from intersect entity D365 C#

我检索了一个相交实体和与之相关的两个实体。

我已经将实体链接到查询(我的信念)。

当我运行代码时,所有相交实体都会出现,但我无法弄清楚如何从中获取任何数据,甚至是名称的名称。

请看下面的代码:.

private static EntityCollection GetOpportunityAndInstallationSiteIntersectEntity(IOrganizationService service)

        var installationSite = "csp_installationsite";
                    var opportunity = "opportunity";
                    var relationshipName = "csp_opportunity_csp_installationsite";
        
                    var relationshipQuery = new QueryExpression(installationSite)
                    {
                        ColumnSet = new ColumnSet(true)
                    };
        
                    var linkInstallationSite = new LinkEntity(installationSite, relationshipName, "csp_installationsiteid","csp_installationsiteid" ,JoinOperator.Inner);
                    var linkOpportunity = new LinkEntity(opportunity, relationshipName, "opportunityid", "opportunityid" ,JoinOperator.Inner);
        
                    linkInstallationSite.LinkEntities.Add(linkOpportunity);
        
                    relationshipQuery.LinkEntities.Add(linkInstallationSite);
                    var RelationshipCollection = service.RetrieveMultiple(relationshipQuery);
                    Console.WriteLine("Retrieved {0} Intersect Entities", RelationshipCollection.Entities.Count);
        
        foreach (Entity IS in RelationshipCollection.Entities)
                    {
                        Console.WriteLine("Intersect Entity:", IS["csp_name"]);
                    }
        
        return RelationshipCollection;
    


    I'd just like to know how I can get the records related to the intersect. 
    Lets call an entity A, I want to deprecate it, but it's related to Entity B in a N:N relationship.
    
    I've created a new entity, which is related to entity A in PowerAutomate.

我希望所有实体 B 现在都与我在 PowerAutomate 中创建的这个实体相关。

任何帮助表示赞赏。

当我运行您的代码时,我可以访问安装站点属性,我只是稍微修改它以从机会中获取所有属性。

下面的代码循环访问机会和安装站点的名称属性。

private static EntityCollection GetOpportunityAndInstallationSiteIntersectEntity(IOrganizationService service)
{
    var installationSite = "csp_installationsite";
    var opportunity = "opportunity";
    var relationshipName = "csp_opportunity_csp_installationsite";

    var relationshipQuery = new QueryExpression(installationSite)
    {
        ColumnSet = new ColumnSet(true)
    };

    var linkInstallationSite = relationshipQuery.AddLink(relationshipName, "csp_installationsiteid", "csp_installationsiteid", JoinOperator.Inner);
    var linkOpportunity = linkInstallationSite.AddLink(opportunity, "opportunityid", "opportunityid", JoinOperator.Inner);
    linkOpportunity.EntityAlias = "opp";
    linkOpportunity.Columns.AllColumns = true;
    var RelationshipCollection = service.RetrieveMultiple(relationshipQuery);

    foreach (Entity IS in RelationshipCollection.Entities)
    {
        Console.WriteLine($"Intersect Entity: {IS["csp_name"]} {((AliasedValue)IS["opp.name"]).Value}");
    }

    return RelationshipCollection;
}

从那里您需要将记录关联到新实体并分离旧实体

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM