Dynamics CRM 代码处理N:N关系

  • 2021-12-06
  • Admin

1、组织服务方法

添加N:N关系

  1. service.Associate("实体1名称", 实体1ID,
  2. new Relationship("实体1实体2中间表"),
  3. new EntityReferenceCollection(new EntityReference("实体2", 实体2ID)));


删除N:N关系
 

  1. service.Disassociate("实体1名称", 实体1ID,
  2. new Relationship("实体1实体2中间表"),
  3. new EntityReferenceCollection(new EntityReference("实体2", 实体2ID)));

例如

  1. //团队添加用户
  2. Service.Associate("team", teamId,
  3. new Relationship("teammembership_association"),
  4. new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });
  5. //移除团队用户
  6. Service.Disassociate("team", teamId,
  7. new Relationship("teammembership_association"),
  8. new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });

2、Request

添加N:N关系

  1. // Create the request object and set the monikers with the
  2. // teamprofiles_association relationship.
  3. AssociateRequest teamToProfile = new AssociateRequest
  4. {
  5. Target = new EntityReference(FieldSecurityProfile.EntityLogicalName, _profileId),
  6. RelatedEntities = new EntityReferenceCollection
  7. {
  8. new EntityReference(Team.EntityLogicalName, _teamId)
  9. },
  10. Relationship = new Relationship("teamprofiles_association")
  11. };
  12. // Execute the request.
  13. svc.Execute(teamToProfile);

删除N:N关系

  1. // Create the request object and set the monikers with the
  2. // teamprofiles_association relationship.
  3. DisassociateRequest teamToProfile = new DisassociateRequest
  4. {
  5. Target = new EntityReference(FieldSecurityProfile.EntityLogicalName, _profileId),
  6. RelatedEntities = new EntityReferenceCollection
  7. {
  8. new EntityReference(Team.EntityLogicalName, _teamId)
  9. },
  10. Relationship = new Relationship("teamprofiles_association")
  11. };
  12. // Execute the request.
  13. svc.Execute(teamToProfile);

3、JavaScript

添加N:N关系

  1. POST [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref HTTP/1.1
  2. Content-Type: application/json
  3. Accept: application/json
  4. OData-MaxVersion: 4.0
  5. OData-Version: 4.0
  6. {
  7. "@odata.id":"[Organization URI]/api/data/v9.0/opportunities(00000000-0000-0000-0000-000000000001)"
  8. }

删除N:N关系

  1. DELETE [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts(00000000-0000-0000-0000-000000000001)/$ref HTTP/1.1
  2. Accept: application/json
  3. OData-MaxVersion: 4.0
  4. OData-Version: 4.0

附:

下表列出了默认实体之间的“N:N”关系中所使用的相交实体。

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

原文:https://blog.csdn.net/qq_35314780/article/details/121747209

联系站长

QQ:769220720