Querying Many-To-Many Relationship in MS CRM with C#

Microsoft CRM Jan 19, 2017

I recently ran into a use case where I had to query a many-to-many realationship in an Microsoft CRM environment. Well, it’s always not that easy as it maybe seems on the first view. After a couple time researching and trying around I found a solution which I’ll share with you right here :-).

All you have to do is specify the entities and intersect entity name. In the result EntityCollection you’ll receive a list of the specified LinkEntity – in my case a list of contacts.

string entity1 = Contact.EntityLogicalName;
string entity2 = Campaign.EntityLogicalName;

QueryExpression query = new QueryExpression(entity1);
LinkEntity linkEntity1 = new LinkEntity(entity1, [Intersect Entity Name], "contactid", "contactid", JoinOperator.Inner);
LinkEntity linkEntity2 = new LinkEntity([Intersect Entity Name], entity2, "campaignid", "campaignid", JoinOperator.Inner);


return this.organizationservice.RetrieveMultiple(query);


Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.