IOrganizationService Interface

The IOrganizationService interface provides a set of methods used to perform the most common operations on system and custom entities and on the metadata for your organization.

Client applications

This interface is implemented in a number of classes that you can use in your code when creating client applications.

Class Description
OrganizationServiceProxy This is the original low-level class which is used by WCF and the SOAP endpoint
OrganizationWebProxyClient This low-level class was created to enable OAuth authentication to the SOAP endpoint
CrmServiceClient This is the class you should use when creating .NET client applications.


You may find older code or samples using the low-level OrganizationServiceProxy or OrganizationWebProxyClient classes, but we recommend you use CrmServiceClient for new .NET Client Applications


When you write plug-ins, there is also an object returned from the IOrganizationServiceFactory.CreateOrganizationService(Nullable<Guid>) which implements the IOrganizationService interface but is not any of the types in the classes above.

IOrganizationService Methods

Each of the classes which implement the IOrganizationService interface may include additional properties and methods, but the IOrganizationService interface has just 8 methods.

Method Description
Associate Link two entities using an entity relationship
Create Create an entity record.
Delete Delete an entity record
Disassociate Remove the link between two entities using an entity relationship
Execute Invoke an operation defined as a message by passing an instance of an OrganizationRequest or a class derived from it.
Retrieve Retrieve an instance of an entity record.
RetrieveMultiple Retrieve a collection of entity records that match the criteria set in a query.
Update Change the attribute values of an entity record.


The Organization service exposes only the Execute method. The other methods in the IOrganizationService interface are simply wrappers around the Execute method. These other methods are provided for convenience. You can perform all operations using only the Execute method. More information: Use messages with the Organization service

See also

Use messages with the Organization service
Write a plug-in
Entity Operations using the Organization service