Retrieve records for many-to-many relationships using intersect entities
Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
In Microsoft Dynamics 365 and Microsoft Dynamics 365 (online), when there is a many-to-many (N:N) relationship between two entities, an intersect entity is automatically created. This is true for both system relationships built into the product as well as custom many-to-many relationships. The name of the entity is specified in the IntersectEntityName property in the relationship metadata. The name of the relationship is specified in the SchemaName property in the relationship metadata.
You can use the intersect entities to refine the result set in any query by using the IOrganizationService.RetrieveMultiple method or the RetrieveMultipleRequest message. However, you cannot retrieve the intersect entity records directly by using the QueryExpression class. To retrieve the records in an intersect entity, you must use the FetchExpression class.
In this topic
Intersect entities
Intersect entity metadata
Intersect entities
The following table lists the intersect entities that are used in N:N relationships between default entities.
IntersectEntity |
MtoM_SchemaName |
MtoM_Entity1 |
MtoM_Entity2 |
---|---|---|---|
accountleads |
accountleads_association |
account |
lead |
campaignactivityitem |
campaignactivitylist_association |
campaignactivity |
list |
campaignactivityitem |
campaignactivitysalesliterature_association |
campaignactivity |
salesliterature |
campaignitem |
campaigncampaign_association |
campaign |
campaign |
campaignitem |
campaignlist_association |
campaign |
list |
campaignitem |
campaignproduct_association |
campaign |
product |
campaignitem |
campaignsalesliterature_association |
campaign |
salesliterature |
competitorproduct |
competitorproduct_association |
competitor |
product |
competitorsalesliterature |
competitorsalesliterature_association |
salesliterature |
competitor |
connectionroleassociation |
connectionroleassociation_association |
connectionrole |
connectionrole |
contactinvoices |
contactinvoices_association |
invoice |
contact |
contactleads |
contactleads_association |
contact |
lead |
contactorders |
contactorders_association |
salesorder |
contact |
contactquotes |
contactquotes_association |
quote |
contact |
entitlementcontacts |
entitlementcontacts_association |
contact |
entitlement |
entitlementproducts |
product_entitlement_association |
product |
entitlement |
entitlementtemplateproducts |
product_entitlementtemplate_association |
product |
entitlementtemplate |
leadcompetitors |
leadcompetitors_association |
lead |
competitor |
leadproduct |
leadproduct_association |
lead |
product |
listmember |
listaccount_association |
list |
account |
listmember |
listcontact_association |
list |
contact |
listmember |
listlead_association |
list |
lead |
opportunitycompetitors |
opportunitycompetitors_association |
opportunity |
competitor |
productassociation |
productassociation_association |
product |
product |
productsalesliterature |
productsalesliterature_association |
product |
salesliterature |
productsubstitute |
productsubstitute_association |
product |
product |
queuemembership |
queuemembership_association |
queue |
systemuser |
roleprivileges |
roleprivileges_association |
privilege |
role |
roletemplateprivileges |
roletemplateprivileges_association |
roletemplate |
privilege |
servicecontractcontacts |
servicecontractcontacts_association |
contact |
contract |
subscriptionmanuallytrackedobject |
contact_subscription_association |
subscription |
contact |
subscriptionmanuallytrackedobject |
task_subscription_association |
subscription |
task |
systemuserprofiles |
systemuserprofiles_association |
systemuser |
fieldsecurityprofile |
systemuserroles |
systemuserroles_association |
systemuser |
role |
teammembership |
teammembership_association |
team |
systemuser |
teamprofiles |
teamprofiles_association |
team |
fieldsecurityprofile |
teamroles |
teamroles_association |
team |
role |
Intersect entity metadata
Most intersect entities are simple, containing just the few properties that are needed to provide a link between to two entities in the N:N relationship. If you are using early bound types, you can see an example, in the ContactInvoices intersect entity. This is the case for all custom many-to-many relationships. However, there are several intersect entities that have additional properties that are used for specific functionality for the relationship. To make it easier to write queries by using the special intersect entities, the attribute metadata is provided in the following topics:
See Also
Build queries with QueryExpression
Customize entity relationship metadata
Retrieve data with queries using SDK assemblies
CampaignActivityItem intersect entity metadata
CampaignItem intersect entity metadata
ListMember intersect entity metadata
Role Privileges intersect entity metadata
Sample: Retrieve records from an intersect table
Microsoft Dynamics 365
© 2016 Microsoft. All rights reserved. Copyright