IOrganizationService.Disassociate Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Deletes a link between records.
public:
void Disassociate(System::String ^ entityName, Guid entityId, Microsoft::Xrm::Sdk::Relationship ^ relationship, Microsoft::Xrm::Sdk::EntityReferenceCollection ^ relatedEntities);
[System.ServiceModel.FaultContract(typeof(Microsoft.Xrm.Sdk.OrganizationServiceFault))]
[System.ServiceModel.OperationContract]
public void Disassociate (string entityName, Guid entityId, Microsoft.Xrm.Sdk.Relationship relationship, Microsoft.Xrm.Sdk.EntityReferenceCollection relatedEntities);
[<System.ServiceModel.FaultContract(typeof(Microsoft.Xrm.Sdk.OrganizationServiceFault))>]
[<System.ServiceModel.OperationContract>]
abstract member Disassociate : string * Guid * Microsoft.Xrm.Sdk.Relationship * Microsoft.Xrm.Sdk.EntityReferenceCollection -> unit
Public Sub Disassociate (entityName As String, entityId As Guid, relationship As Relationship, relatedEntities As EntityReferenceCollection)
Parameters
- entityName
- String
The logical name of the table for the record that is specified in the entityId
parameter.
- entityId
- Guid
The ID of the record from which the related records are disassociated.
- relationship
- Relationship
The name of the relationship to be used to remove the link.
- relatedEntities
- EntityReferenceCollection
A collection of entity references (references to records) to be disassociated.
- Attributes
Examples
The following example demonstrates how to use the Disassociate(String, Guid, Relationship, EntityReferenceCollection) method to remove an association or link between records.
/// <summary>
/// Demonstrates the Disassociate method
/// </summary>
/// <param name="service">Authenticated IOrganizationService instance</param>
/// <param name="target">The retrieved record to disassociate from the other records</param>
/// <param name="recordsToDisassociate">The retrieved records to disassociate from the target record</param>
/// <param name="relationshipName">The name of the relationship</param>
static void DisassociateExample(
IOrganizationService service,
Entity target,
EntityCollection recordsToDisassociate,
string relationshipName) {
EntityReferenceCollection entityReferences = new();
foreach (Entity record in recordsToDisassociate.Entities)
{
entityReferences.Add(record.ToEntityReference());
}
service.Disassociate(
entityName: target.LogicalName,
entityId: target.Id,
relationship: new Relationship(relationshipName),
relatedEntities: entityReferences);
}
You can find more samples on GitHub:
Remarks
Learn how to disassociate table rows using the SDK for .NET.
Privileges and Access Rights
To perform this action, the caller must have Read
privileges on the table that is specified in the entityName
parameter and Read
access rights on the record that are specified in the entityId
. Callers must also have Read
and Write
privileges and access rights for the records referenced in the relatedEntities
parameter. Learn more about how to verify access with code.
Notes for Callers
This method removes multiple associations in one transaction between the record that is specified by the entityId
parameter and each record in the relatedEntities
parameter for the relationship that is specified in the relationship
parameter.
For a one-to-many relationship, this method clears the value of the lookup column named as the OneToManyRelationshipMetadata.ReferencingAttribute in the relationship definition.
For a many-to-many relationship, this method deletes one or more records in the intersect table for the relationship which contains the ID of both the referenced and referencing records. The intersect table name is defined by the ManyToManyRelationshipMetadata.IntersectEntityName property in the relationship definition.
You need the intersect table name when you query for the records. However, you only need the relationship name to set the relationship
parameter. This name is defined in the ManyToManyRelationshipMetadata.SchemaName property in the relationship definition.
For more information about the exceptions that can be thrown when this method is called, see Handle exceptions in your code.
Supported tables
You can use this method to disassociate any records that participate in a relationship. The Disassociate
message isn't bound to a table.