pac modelbuilder
Générateur de code pour les API et les tables Dataverse
Utilisez la commande pac modelbuilder build pour générer des classes .NET à liaison anticipée pour des tables Dataverse, des messages personnalisés et une classe dérivée de la Classe OrganizationServiceContext. En savoir plus sur l’utilisation de cette commande pour générer des classes à liaison précoce
La classe dérivée d'OrganizationServiceContext :
- Tient à jour l’état sur le client pour prendre en charge des fonctionnalités telles que la gestion des modifications.
- Implémente l'interface System.Linq.IQueryable et un fournisseur de requêtes .NET LINQ (Language-Integrated Query) afin que vous puissiez écrire des requêtes LINQ à l’aide de données Dataverse.
Pour plus d’informations sur les fonctionnalités activées par cet outil de génération de code :
- Programmation à date tardive et à date anticipée à l’aide du service Organisation
- Utiliser OrganizationServiceContext
- Créer des requêtes avec LINQ
Note
La commande pac modelbuilder build
remplace le CrmSvcUtil.exe
distribué par le package Microsoft.CrmSdk.CoreTools NuGet .
Commandes
Command | Description |
---|---|
constructeur de modèles pac | Crée un modèle de code pour les API et les tables Dataverse |
pac modelbuilder build
Crée un modèle de code pour les API et les tables Dataverse
Note
Avant de pouvoir utiliser la commande build
, vous devez d’abord vous connecter à Dataverse à l’aide de la commande pac auth create . Si vous disposez de plusieurs connexions, utilisez pac auth select pour choisir l’environnement Dataverse pour lequel vous souhaitez générer du code.
Exemple
L'exemple suivant explique comment utiliser la commande build
avec une invite de commande.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
Et la meme commande avec PowerShell :
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Important
Vous devez entourer de guillemets simples tous les paramètres de chaîne lorsque vous utilisez PowerShell.
Le résultat de cette commande est que les fichiers suivants sont écrits dans le dossier c:\src\MyApps\Model
.
C:\src\MyApps\Model\
|---Entities\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs
builderSettings.json contient les paramètres que vous avez spécifiés pour la commande. Vous pouvez l’utiliser pour régénérer rapidement les fichiers à mesure que les choses changent. L’exemple suivant illustre l’utilisation du fichier buildersettings.json
généré à partir de la première commande avec settingsTemplateFile :
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
Vous pouvez également choisir de créer un fichier builderSettings.json
et de l’utiliser au lieu de transmettre tous les paramètres à la commande. Voici un exemple équivalent au premier exemple ci-dessus :
{
"suppressINotifyPattern": false,
"suppressGeneratedCodeAttribute": false,
"language": "CS",
"namespace": "MyApps.Model",
"serviceContextName": "OrgContext",
"generateSdkMessages": true,
"generateGlobalOptionSets": false,
"emitFieldsClasses": true,
"entityTypesFolder": "Entities",
"messagesTypesFolder": "Messages",
"optionSetsTypesFolder": "OptionSets",
"entityNamesFilter": [
"account",
"contact"
],
"messageNamesFilter": [
"examp_*"
],
"emitEntityETC": false,
"emitVirtualAttributes": true
}
Si vous transmettez des paramètres à la commande tout en utilisant le paramètre settingsTemplateFile , les paramètres transmis à la commande remplaceront ceux définis dans le fichier builderSettings.json
.
Vous ne pouvez pas utiliser en même temps le paramètre settingsTemplateFile et le paramètre writesettingsTemplateFile.
Paramètres obligatoires pour modelbuilder build
--outdirectory
-o
Répertoire d’écriture pour les fichiers d’entité, de message et de groupe d’options.
Paramètres facultatifs pour modelbuilder build
--emitentityetc
-etc
Une fois défini, inclut l’entité ETC (code de type d’entité) dans le code généré.
Ce paramètre ne requiert aucune valeur. C’est un commutateur.
--emitfieldsclasses
-efc
Génère une structure de constantes qui contient tous les noms de champs par entité lors de la génération du code.
Ce paramètre ne requiert aucune valeur. C’est un commutateur.
--emitvirtualattributes
-eva
Une fois défini, comprend la prise en charge des attributs de nom pour les recherches qui activent le filtrage sur les valeurs d’attributs de nom principal des attributs de recherche.
Ce paramètre ne requiert aucune valeur. C’est un commutateur.
--entitynamesfilter
-enf
Filtre la liste des entités récupérées lors de la lecture des données de Dataverse. Transmis en tant que liste séparée par des points-virgules. Utilisation du format <entitylogicalname>;<entitylogicalname>
--entitytypesfolder
-etf
Nom du dossier contenant des entités. Le nom par défaut est « Entités ».
--environment
-env
Spécifie le Dataverse cible. La valeur peut être un GUID ou une URL https absolue. Lorsque la valeur n’est pas spécifiée, l’organisation active sélectionnée pour le profil d’authentification actuel sera utilisée.
--generateGlobalOptionSets
-go
Émet tous les groupes d’options globales. Remarque : si une entité contient une référence à un groupe d’options globales, elle est émise même si ce changement n’est pas présent.
--generatesdkmessages
-a
Une fois défini, émet des classes de messages Sdk dans le cadre de la génération de code.
Ce paramètre ne requiert aucune valeur. C’est un commutateur.
--language
-l
Langage à utiliser pour le code proxy généré. Cette valeur peut être « CS » ou « VB ». Le langage par défaut est « CS ».
--logLevel
-ll
Niveau de consignation. La valeur par défaut est « Désactivé ».
Utilisez l’une de ces valeurs :
Off
Critical
Error
Warning
Information
Verbose
ActivityTracing
All
--messagenamesfilter
-mnf
Filtre la liste des messages récupérés lors de la lecture des données de Dataverse. Transmis en tant que liste séparée par des points-virgules ; les messages requis (Create, Update, Delete, Retrieve, RetrieveMultiple, Associate et Disassociate) sont toujours inclus. Utilisez un astérisque (*) à la fin ou au début avec les noms des messages pour autoriser tous les messages commençant ou se terminant par une chaîne. Utilisation du format <messagename>;<messagename>.
--messagestypesfolder
-mtf
Nom du dossier contenant des messages. Le nom par défaut est « Messages ».
--namespace
-n
Espace de noms du code généré. L’espace de noms par défaut est l’espace de noms global.
--optionsetstypesfolder
-otf
Nom du dossier contenant des groupes d’options. Le nom par défaut est « OptionSets »
--serviceContextName
-sctx
Nom du contexte de service généré. Si une valeur est transmise, elle est utilisée pour le contexte de service. Sinon, aucun contexte de service n’est généré.
--settingsTemplateFile
-stf
Contient les paramètres à utiliser pour cette exécution de Dataverse Model Builder, remplace les paramètres en double sur la ligne de commande. Ne peut pas être défini lorsque --writesettingstemplate est utilisé.
--suppressGeneratedCodeAttribute
-sgca
Une fois définie, cette option supprime tous les objets générés en cours de marquage avec le moteur et la version de génération de code
Ce paramètre ne requiert aucune valeur. C’est un commutateur.
--suppressINotifyPattern
Quand l’utilisateur est activé, n’écrit pas les wrappers INotify pour les propriétés et les classes.
--writesettingsTemplateFile
-wstf
Lorsque cette option est définie, un fichier de paramètres est écrit dans le répertoire de sortie avec les paramètres actuels transmis ou les paramètres par défaut.
Remarques
Ci-après, des recommandations pour utiliser la commande pac modelbuilder build
.
Définir les paramètres entitynamesfilter
et messagenamesfilter
Avertissement
Nous recommandons fortement d’utiliser les paramètres entitynamesfilter et messagenamesfilter paramètres pour limiter les fichiers générés à ceux que vous utiliserez dans votre projet. Sinon, la commande build tentera de générer du code pour toutes les tables et tous les messages de Dataverse. Cela prendra beaucoup de temps à traiter.
Les classes pour les messages trouvés dans l’espace de noms Microsoft.Crm.Sdk.Messages et Microsoft.Xrm.Sdk.Messages ne sont pas générées à l’aide de cette commande. Vous ne devez inclure que les messages qui n'y figurent pas dans le paramètre messagenamesfilter
, tels que les actions personnalisées.
Définir suppressINotifyPattern
si vous ne créez pas une application WPF
Les wrappers INotify
supprimés par cette commande sont utilisés pour les scénarios de liaison de données avec des applications WPF. Si vous ne créez pas une application WPF avec le code généré, vous n’en avez pas besoin. Utilisez le paramètre suppressINotifyPattern pour les supprimer.
Inclure serviceContextName
lors de la génération de classes de messages
Si vous générez des classes de messages, vous devez toujours inclure le paramètre serviceContextName pour générer un OrganizationServiceContext, même si vous ne l’utilisez pas. Les classes de messages générées nécessitent une propriété définie dans ce fichier. En savoir plus sur l’erreur qui se produit si vous ne définissez pas ceci.
Voir aussi
Microsoft Power Platform Groupes de commandes CLI
Microsoft Power Platform Présentation de la CLI