CRM 2011 obtenir un attribut d'enregistrement d'entité personnalisé sans types de liaison anticipée

StackOverflow https://stackoverflow.com/questions/7361856

Question


Je recherche une méthode pour récupérer l'attribut d'entité personnalisé sans générer les premiers types de liaison avec crmsvcutil.

Y a-t-il une solution à mon problème?

Était-ce utile?

La solution

Vous n'avez pas besoin de générer des types de liaisons précoces pour récupérer les données d'entité de CRM.Vous pouvez travailler avec un type appelé Entity (qui est similaire à DynamicEntity de CRM4).

Le SDK propose des exemples sur la façon de travailler avec des entités à liaison tardive ici .

Cette classe d'entité n'est pas fortement typée (contrairement aux entités à liaison anticipée générées à partir de crmsvcutil), vous devez donc effectuer vous-même des casts.Il existe une méthode sur Entity qui vous aidera à cela.Le code suivant peut vous donner une idée de la façon de récupérer une entité à liaison tardive.

IOrganizationService service = GetOrganizationService();
var entity = service.Retrieve(entityName,
                                entityId,
                                new ColumnSet(new[]
                                                {
                                                    stringAttributeName,
                                                    intAttributeName,
                                                    floatAttributeName,
                                                    boolAttributeName,
                                                    optionSetAttributeName,
                                                    entityReferenceAttributeName,
                                                }));
var stringValue = entity.GetAttributeValue<string>(stringAttributeName);
var intValue = entity.GetAttributeValue<int?>(intAttributeName);
var floatValue = entity.GetAttributeValue<double?>(floatAttributeName);
var boolValue = entity.GetAttributeValue<bool?>(boolAttributeName);
var optionSetValue = entity.GetAttributeValue<OptionSetValue>(optionSetAttributeName);
var entityReferenceValue = entity.GetAttributeValue<EntityReference>(entityReferenceAttributeName);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top