1、组织服务方法
添加N:N关系
service.Associate("实体1名称", 实体1ID,
new Relationship("实体1实体2中间表"),
new EntityReferenceCollection(new EntityReference("实体2", 实体2ID)));
删除N:N关系
service.Disassociate("实体1名称", 实体1ID,
new Relationship("实体1实体2中间表"),
new EntityReferenceCollection(new EntityReference("实体2", 实体2ID)));
例如
//团队添加用户
Service.Associate("team", teamId,
new Relationship("teammembership_association"),
new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });
//移除团队用户
Service.Disassociate("team", teamId,
new Relationship("teammembership_association"),
new EntityReferenceCollection() { new EntityReference("systemuser", systemuser) });
2、Request
添加N:N关系
// Create the request object and set the monikers with the
// teamprofiles_association relationship.
AssociateRequest teamToProfile = new AssociateRequest
{
Target = new EntityReference(FieldSecurityProfile.EntityLogicalName, _profileId),
RelatedEntities = new EntityReferenceCollection
{
new EntityReference(Team.EntityLogicalName, _teamId)
},
Relationship = new Relationship("teamprofiles_association")
};
// Execute the request.
svc.Execute(teamToProfile);
删除N:N关系
// Create the request object and set the monikers with the
// teamprofiles_association relationship.
DisassociateRequest teamToProfile = new DisassociateRequest
{
Target = new EntityReference(FieldSecurityProfile.EntityLogicalName, _profileId),
RelatedEntities = new EntityReferenceCollection
{
new EntityReference(Team.EntityLogicalName, _teamId)
},
Relationship = new Relationship("teamprofiles_association")
};
// Execute the request.
svc.Execute(teamToProfile);
3、JavaScript
添加N:N关系
POST [Organization URI]/api/data/v9.0/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref HTTP/1.1
Content-Type: application/json
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
{
"@odata.id":"[Organization URI]/api/data/v9.0/opportunities(00000000-0000-0000-0000-000000000001)"
}
删除N:N关系
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
Accept: application/json
OData-MaxVersion: 4.0
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 |