Below Code Retrieve all Fields Of an Entity which can be used to perfore sevral execution Like bulk update of fields in an entity .

RetrieveEntityRequest aEntity = new RetrieveEntityRequest();
            aEntity.LogicalName = entityLogicanName;
          //only get published fields / attributes
            aEntity.RetrieveAsIfPublished = true;
            aEntity.EntityFilters = EntityFilters.All ;

            RetrieveEntityResponse resp = (RetrieveEntityResponse)service.Execute(aEntity);

            EntityMetadata getmetadata = resp.EntityMetadata;

            var crmAttributes = getmetadata.Attributes;
            foreach (var attr in crmAttributes)
                // filter can be used to get only Custom fields / or System fields with change
                if (attr.IsSecured == false && (attr.CanBeSecuredForUpdate == true || attr.CanBeSecuredForRead == true || attr.CanBeSecuredForCreate == true))

Hope This Helped You Thanks For the Support , If Any query or suggestion , please comment below

SOURCE : JUST2CODE.IN Subscribe to our YouTube channel :