Comparteix via


pac modelbuilder

Generador de codi per a API i taules del Dataverse

Utilitza la pac modelbuilder build comanda per generar classes .NET amb lligams inicials per a taules Dataverse, missatges personalitzats i una classe derivada de la classe OrganizationServiceContext. Més informació sobre com utilitzar aquesta ordre per generar classes d'enllaç anticipat

La classe derivada de OrganizationServiceContext:

  • Manté l'estat del client per donar suport a funcions com ara l'administració de canvis.
  • Implementa la interfície System.Linq.IQueryable i un proveïdor de consultes .NET Language-Integrated Query (LINQ) perquè pugueu escriure consultes LINQ amb dades del Dataverse.

Per obtenir més informació sobre les capacitats que habilita aquesta eina de generació de codi:

Nota

L'ordre pac modelbuilder build substitueix el CrmSvcUtil.exe distribuït pel paquet NuGet Microsoft.CrmSdk.CoreTools .

Comandes

Ordre Descripció
pac modelbuilder build Crea un model de codi per a les API i les taules del Dataverse

pac modelbuilder build

Crea un model de codi per a les API i les taules del Dataverse

Nota

Abans de poder utilitzar l'ordre build , primer has de connectar-te a Dataverse utilitzant l'ordre pac auth create . Si tens diverses connexions, utilitza la selecció d'autenticaciópac per triar l'entorn Dataverse per al qual vols generar codi.

Exemple

L'exemple següent mostra com utilitzar l'ordre build amb un símbol del sistema.

pac modelbuilder build ^
  --entitynamesfilter account;contact ^
  --generatesdkmessages ^
  --messagenamesfilter examp_* ^
  --emitfieldsclasses ^
  --emitVirtualAttributes ^
  --namespace MyApps.Model ^
  --outdirectory c:\src\MyApps\Model ^
  --writesettingsTemplateFile ^
  --serviceContextName OrgContext

I la mateixa ordre amb PowerShell:

pac modelbuilder build `
  --entitynamesfilter 'account;contact' `
  --generatesdkmessages `
  --messagenamesfilter 'examp_*' `
  --emitfieldsclasses `
  --emitVirtualAttributes `
  --namespace 'MyApps.Model' `
  --outdirectory 'c:\src\MyApps\Model' `
  --writesettingsTemplateFile `
  --serviceContextName 'OrgContext'

Important

Heu d'envoltar qualsevol paràmetre de cadena amb cometes simples quan utilitzeu el PowerShell.

El resultat d'aquesta ordre és que els fitxers següents s'escriuen a la c:\src\MyApps\Model carpeta.

C:\src\MyApps\Model\
|---Entitats\
| |--account.cs
| |--contact.cs
|---Conjunts d'opcions\
| |--addresstypes.cs
|---Missatges\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|--- OrgContext.cs

builderSettings.json conté els paràmetres que heu especificat per a l'ordre. Podeu utilitzar-lo per regenerar ràpidament els fitxers a mesura que canvien les coses. L'exemple següent mostra l'ús del fitxer generat buildersettings.json des de la primera ordre mitjançant settingsTemplateFile:

pac modelbuilder build `
  --outdirectory c:\src\MyApps\Model `
  --settingsTemplateFile c:\src\MyApps\Model\builderSettings.json

També podeu optar per crear un builderSettings.json fitxer i utilitzar-lo en lloc de passar tots els paràmetres a l'ordre. A continuació es mostra un exemple equivalent al primer exemple anterior:

{
  "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 passeu paràmetres a l'ordre mentre utilitzeu el paràmetre settingsTemplateFile , els paràmetres passats a l'ordre substituiran els establerts al builderSettings.json fitxer.

No podeu utilitzar el paràmetre settingsTemplateFile i el paràmetre writesettingsTemplateFile alhora.

Paràmetres requerits per a modelbuilder build

--outdirectory -o

Escriviu el directori per als fitxers d'entitat, missatge i conjunt d'opcions.

Paràmetres opcionals per a modelbuilder build

--emitentityetc -etc

Quan s'estableix, inclou l'entitat ETC (codi de tipus d'entitat) al codi generat.

Aquest paràmetre no requereix cap valor. És un canvi.

--emitfieldsclasses -efc

Genereu una estructura de constants que contingui tots els noms de camp per entitat en el moment de la generació del codi.

Aquest paràmetre no requereix cap valor. És un canvi.

--emitvirtualattributes -eva

Quan es defineix, inclou atributs de nom de suport per a les cerques que permeten filtrar els valors d'atribut de nom principal dels atributs de cerca.

Aquest paràmetre no requereix cap valor. És un canvi.

--entitynamesfilter -enf

Filtra la llista d'entitats que es recuperen quan es llegeixen dades del Dataverse. Passat com una llista separada per punt i coma. Utilitzant el formulari <entitylogicalname>;<entitylogicalname>

--entitytypesfolder -etf

Nom de la carpeta que conté entitats. El nom per defecte és "Entitats".

--environment -env

Especifica el Dataverse de destinació. El valor pot ser un Guid o un URL https absolut. Quan no s'especifiqui, s'utilitzarà l'organització activa seleccionada per al perfil d'autenticació actual.

--generateGlobalOptionSets -go

Emet tots els conjunts d'opcions globals. Nota: Si una entitat conté una referència a un conjunt d'opcions global, s'emet encara que aquest commutador no estigui present.

--generatesdkmessages -a

Quan es defineix, emet classes de missatges de l'SDK com a part de la generació de codi.

Aquest paràmetre no requereix cap valor. És un canvi.

--language -l

Llengua que s'utilitzarà per al codi intermediari generat. Aquest valor pot ser 'CS' o 'VB'. L'idioma per defecte és "CS".

--logLevel -ll

Nivell de registre. El valor per defecte és 'Off'.

Utilitzeu un d'aquests valors:

  • Off
  • Critical
  • Error
  • Warning
  • Information
  • Verbose
  • ActivityTracing
  • All

--messagenamesfilter -mnf

Filtra la llista de missatges que es recuperen en llegir dades del Dataverse. Sempre s'inclouen els missatges necessaris (Crea, Actualitza, Suprimeix, Recupera, Recupera, Recupera, Associa i Desassocia). Utilitzeu un asterisc final o inicial (*) amb els noms dels missatges per permetre tots els missatges que comencin amb o acabin amb una cadena. Utilitzant el formulari <messagename;><nom del> missatge.

--messagestypesfolder -mtf

Nom de la carpeta que conté missatges. El nom per defecte és "Missatges".

--namespace -n

L'espai de noms del codi generat. L'espai de noms per defecte és l'espai de noms global.

--optionsetstypesfolder -otf

Nom de la carpeta que conté conjunts d'opcions. El nom per defecte és 'OptionSets'.

--serviceContextName -sctx

El nom del context de servei generat. Si es passa un valor, s'utilitza per al context de servei. Si no, no es genera cap context de servei.

--settingsTemplateFile -stf

Conté la configuració que s'utilitzarà per a aquesta execució del Generador de models del Dataverse, substitueix els paràmetres duplicats a la línia d'ordres. No es pot definir quan s'utilitza --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Quan s'estableix, suprimeix tots els objectes generats que s'etiqueten amb el motor de generació de codi i la versió

Aquest paràmetre no requereix cap valor. És un canvi.

--suppressINotifyPattern

Quan està habilitat, no escriu els embolcalls INotify per a propietats i classes.

--writesettingsTemplateFile -wstf

Quan s'estableix, escriu un fitxer de configuració al directori de sortida amb la configuració actual passada o la configuració predeterminada.

Observacions

A continuació es mostren recomanacions per utilitzar l'ordre pac modelbuilder build .

Estableix els entitynamesfilter paràmetres i messagenamesfilter

Atenció

Us recomanem que utilitzeu els paràmetres entitynamesfilter i messagenamesfilter per limitar els fitxers generats als que utilitzareu al vostre projecte. En cas contrari, l'ordre build intentarà generar codi per a totes les taules i missatges del Dataverse. Això trigarà molt de temps a processar-se.

Les classes dels missatges que es troben a l'espai de noms Microsoft.Crm.Sdk.Messages i Microsoft.Xrm.Sdk.Messages no es generen amb aquesta ordre. Només heu d'incloure messagenamesfilter missatges que no s'hi troben al paràmetre, com ara accions personalitzades.

Definiu suppressINotifyPattern si no esteu construint una aplicació WPF

Els INotify embolcalls suprimits per aquesta ordre s'utilitzen per a escenaris d'enllaç de dades amb aplicacions WPF. Si no esteu creant una aplicació WPF amb el codi generat, no els necessiteu. Utilitzeu el paràmetre suppressINotifyPattern per suprimir-los.

Inclou serviceContextName en generar classes de missatges

Si esteu generant classes de missatges, sempre heu d'incloure el paràmetre serviceContextName per generar un OrganizationServiceContext, encara que no l'utilitzeu. Les classes de missatges generades requereixen una propietat definida en aquest fitxer. Obteniu més informació sobre l'error que es produeix si no el configureu.

Vegeu també

Grups d'ordres de l'CLI del Microsoft Power Platform
Informació general de la CLI del Microsoft Power Platform