Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
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:
- Programació d'enllaç tardà i d'enllaç anticipat mitjançant el servei d'organització
- Utilitzar OrganizationServiceContext
- Crear consultes amb LINQ
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:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--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