user3631102
user3631102

Reputation: 69

Retrieve N:N Relationship in Dynamics Crm

Currency entity is associated N:N Relationship with Lead.Now I'm trying to Retrieve associated Currency with the lead.i'm getting problem transaction currency does'nt contain attribute with leadid.could any references plz...

if (context.InputParameters.Contains("Target") && (context.InputParameters["Target"]) is Entity)
{
    Entity en = (Entity)context.InputParameters["Target"];
    QueryExpression _Query = new QueryExpression
    {
        EntityName = "transactioncurrency",
        ColumnSet = new ColumnSet(true),
        LinkEntities = 
        { 
            new LinkEntity 
            { 
                Columns=new ColumnSet(true),
                LinkFromEntityName="lead",
                LinkFromAttributeName="leadid",
                LinkToEntityName="new_lead_transactioncurrency",
                LinkToAttributeName="transactioncurrencyid",
                LinkCriteria=new FilterExpression  
                {
                    FilterOperator=LogicalOperator.And,
                    Conditions=
                    { 
                        new ConditionExpression  
                        {
                            AttributeName="transactioncurrencyid",
                            Operator=ConditionOperator.Equal,
                            Values={ en.Id }
                        }
                    }
                }
            }
        }
    };

    EntityCollection entitycollect = service.RetrieveMultiple(_Query);
    int entitycount = entitycollect.Entities.Count;
}

Upvotes: 2

Views: 6412

Answers (1)

Scorpion
Scorpion

Reputation: 4585

I think you need to identify the correct LinkFromAttributeName and LinkToAttributeName.

QueryExpression query = new QueryExpression(entity1);

query.ColumnSet = new ColumnSet(true);

LinkEntity linkEntity1 = new LinkEntity("lead", "new_lead_transactioncurrency", "leadid", "leadid", JoinOperator.Inner);

LinkEntity linkEntity2 = new LinkEntity("new_lead_transactioncurrency", "transactioncurrency", "transactioncurrencyid", "transactioncurrencyid", JoinOperator.Inner);

linkEntity1.LinkEntities.Add(linkEntity2);
query.LinkEntities.Add(linkEntity1);

// Add condition to match the Bike name with “Honda”
linkEntity2.LinkCriteria = new FilterExpression();

linkEntity2.LinkCriteria.AddCondition(new ConditionExpression("raj_bikename", ConditionOperator.Equal, "Honda"));

EntityCollection collRecords = service.RetrieveMultiple(query);

For reference please have a look at the followng links:

Retrieve associated records (N:N related)

Sample: Convert queries between Fetch and QueryExpression

Upvotes: 4

Related Questions