Get ALL Entity Metadata in Dynamics CRM

2.3k views Asked by At

What I want to do is:

  1. Retrieve all metadata from CRM.
  2. Serialize that metadata and store it in a file.
  3. At a later point, deserialize and eed that metadata to XrmFakeEasy for unit tests.

Steps 2 and 3 are done but I don't know how to accomplish step 1. I've spent some time noodling around in the code and on Google but remain stumped.

We're using .Net so what I need is to read ALL the Entity Metadata (type: Microsoft.Xrm.Sdk.Metadata.EntityMetadata).

If anyone knows how to do this or can point me in the direction of the API (I haven't been able to find one) then please let me know.

P.S. This case is for on-premise crm.

2

There are 2 answers

0
Sergey Tunnik On BEST ANSWER

If I get it right you need to use RetrieveAllEntitiesRequest request. Here are more details: https://stackoverflow.com/a/29694213/2575544

0
Jay On

For the benefit of anyone that comes across this post here's

My final solution

public static EntityMetadata[] GetMetadata(IOrganizationService crmService)
{
    var request = new RetrieveAllEntitiesRequest
    {
        EntityFilters = EntityFilters.All
    };

    var response = (RetrieveAllEntitiesResponse) crmService.Execute(request);
    return response.EntityMetadata;
}