Question

Les extensions de développement avancé Microsoft CRM me ont obtenu un peu gâté avec leur liaison anticipée pour les appels effectués aux webservices de CRM.

J'écris un plugin en ce moment et j'aimerais accéder aux attributs définis dans la pré-image. Tous les exemples jettent la préimage comme Microsoft.Xrm.Sdk.Entity qui utilise la liaison tardive pour accéder aux attributs de it. Je n'aime hardcoding pour tous les noms d'attributs est les chaînes dans mon plugin et voudrais trouver une méthode qui évite en utilisant la liaison précoce.

Voici un exemple d'un casting

var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"]; 

Mais je dois utiliser la liaison tardive pour accéder aux propriétés

var myProperty = preMessageImate.Properties["MyProperty"];

Est-il possible de lancer ce preimage à un objet XRM qui a toutes les propriétés définies en utilisant la liaison au début, donc je n'ai pas hardcode tous les noms de propriété?

Était-ce utile?

La solution

Vous devez d'abord utiliser l'outil crmsvcutil dans le SDK pour générer « précoce » entités liées XRM et inclure ce fichier de code dans votre plugin codebase.

Je suggère en omettant la « DataContextName » en ligne de commande arg donc pas le contexte est généré.

Pour plus d'informations ici vérification sur MSDN: CrmSvcUtil sur MSDN

Ensuite, vous devez utiliser la méthode de la classe ToEntity<T> entité pour obtenir une entité spécifique fortement typée. Plus d'infos ici: ToEntity sur MSDN

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top