CRM 2011 obtenir un attribut d'enregistrement d'entité personnalisé sans types de liaison anticipée
-
28-10-2019 - |
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?
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);