簡體   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