Partajați prin


pac modelbuilder

Generator de cod pentru API-uri și tabele de date

Utilizați comanda compilare pac modelbuilder pentru a genera clase .NET legate timpuriu pentru tabele Dataverse, mesaje particularizate și o clasă derivată din Clasa OrganizationServiceContext. Aflați mai multe despre utilizarea acestei comenzi pentru a genera clase legate timpuriu

Clasa derivată din OrganizationServiceContext:

  • Menține starea clientului pentru a accepta caracteristici cum ar fi gestionarea modificărilor.
  • Implementează interfața System.Linq.IQueryable și un furnizor de interogări .NET Language-Integrated Query (LINQ), astfel încât să puteți scrie interogări LINQ utilizând date Dataverse.

Pentru mai multe informații despre capacitățile pe care le activează acest instrument de generare a codului:

Notă

Comanda pac modelbuilder build înlocuiește distribuirea CrmSvcUtil.exe cu pachetul Microsoft.CrmSdk.CoreTools NuGet.

Comenzi

Comanda Descriere
pac modelbuilder build Creează un model de cod pentru API-uri și tabele Dataverse

pac modelbuilder build

Creează un model de cod pentru API-uri și tabele Dataverse

Notă

Înainte de a putea utiliza build comanda, trebuie să vă conectați mai întâi la Dataverse utilizând comanda de creare pac auth . Dacă aveți mai multe conexiuni, utilizați selectarea pac auth pentru a alege mediul Dataverse pentru care doriți să generați cod.

Exemplu

Următorul exemplu vă arată cum să utilizați build comanda cu o linie de comandă.

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

Și aceeași comandă utilizând PowerShell:

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

Important

Trebuie să încadrați toți parametrii șir cu ghilimele unice atunci când utilizați PowerShell.

Rezultatul acestei comenzi este că următoarele fișiere sunt scrise în c:\src\MyApps\Model folder.

C:\src\MyApps\Model\
|---Entităţi\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---
|---

builderSettings.json conține parametrii specificați pentru comandă. Îl puteți utiliza pentru a regenera rapid fișierele pe măsură ce lucrurile se modifică. Următorul exemplu arată utilizarea fișierului generat buildersettings.json din prima comandă utilizând settingsTemplateFile:

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

De asemenea, puteți alege să creați un builderSettings.json fișier și să îl utilizați în loc să transmiteți toți parametrii la comandă. Următorul este un exemplu echivalent cu primul exemplu de mai sus:

{
  "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
}

Dacă treceți parametrii la comandă în timp ce utilizați parametrul settingsTemplateFile , parametrii transmiși comenzii vor înlocui setul din builderSettings.json fișier.

Nu puteți utiliza parametrul settingsTemplateFile și parametrul writesettingsTemplateFile în același timp.

Parametri obligatorii pentru compilarea modelbuilder

--outdirectory -o

Scrieți director pentru fișiere entitate, mesaj și opțiuni.

Parametri opționali pentru compilarea modelbuilder

--emitentityetc -etc

Când este setat, include entitatea ETC ( codul de tip entitate ) în codul generat.

Acest parametru nu necesită nicio valoare. Este un comutator.

--emitfieldsclasses -efc

Generați o structură constantă care conține toate numele de câmpuri după entitate în momentul generării codului.

Acest parametru nu necesită nicio valoare. Este un comutator.

--emitvirtualattributes -eva

Atunci când este setat, include atribute de nume de suport pentru căutări care permit filtrarea după valorile atributului name principal ale atributelor de căutare.

Acest parametru nu necesită nicio valoare. Este un comutator.

--entitynamesfilter -enf

Filtrează lista de entități sunt regăsite atunci când citesc date din Dataverse. Trecut ca o listă separată de punct și virgulă. Utilizarea numelui< entitylogic al formularului>;<entitylogicname>

--entitytypesfolder -etf

Nume folder care conține entități. Numele implicit este "Entități".

--environment -env

Specifică dataverse țintă. Valoarea poate fi un URL GUID sau absolut https. Când nu este specificată, se va utiliza organizația activă selectată pentru profilul de autentificare curent.

--generateGlobalOptionSets -go

Emit toate Seturile de opțiuni globale. Notă: dacă o entitate conține o referință la un set de opțiuni globale, aceasta este emisă chiar dacă acest argument nu este prezent.

--generatesdkmessages -a

Atunci când este setată, emite clase de mesaje Sdk ca parte a generației codului.

Acest parametru nu necesită nicio valoare. Este un comutator.

--language -l

Limba de utilizat pentru codul proxy generat. Această valoare poate fi "CS" sau "VB". Limba implicită este "CS".

--logLevel -ll

Nivel jurnal. Valoarea implicită este "Dezactivat".

Utilizați una dintre aceste valori:

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

--messagenamesfilter -mnf

Filtrează lista de mesaje regăsite atunci când se citesc date din Dataverse. Transmis ca listă separată prin punct și virgulă, mesajele obligatorii (Creare, Actualizare, Ștergere, Regăsire, RetrieveMultiple, Associate și Disassociate) sunt întotdeauna incluse. Utilizați un asterisc de sfârșit sau înainte (*) cu numele mesajelor pentru a permite toate mesajele care încep cu sau se termină cu un șir. Utilizarea numelui< mesajului formularului>;<nume mesaj>.

--messagestypesfolder -mtf

Nume folder care conține mesaje. Numele implicit este "Mesaje".

--namespace -n

Spațiul de nume pentru codul generat. Spațiul de nume implicit este spațiul de nume global.

--optionsetstypesfolder -otf

Nume folder care conține seturi de opțiuni. Numele implicit este "OptionSets".

--serviceContextName -sctx

Numele contextului de serviciu generat. Dacă o valoare este transferată, este utilizată pentru Contextul serviciului. Dacă nu, nu este generat niciun context de serviciu.

--settingsTemplateFile -stf

Conține setări de utilizat pentru această rulare a Generatorului de modele Dataverse, înlocuiește toți parametrii dublați din linia de comandă. Nu se poate seta când se utilizează --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Când este setată, acest lucru suprimă toate obiectele generate etichetate cu motorul de generare de cod și versiunea

Acest parametru nu necesită nicio valoare. Este un comutator.

--suppressINotifyPattern

Atunci când este activată, nu scrie wrappers INotify pentru proprietăți și clase.

--writesettingsTemplateFile -wstf

Atunci când este setată, scrie un fișier de setări în directorul de ieșire cu setările transmise curente sau setările implicite.

Remarci

Următoarele sunt recomandări pentru utilizarea comenzii pac modelbuilder build .

Setarea parametrilor entitynamesfilter și messagenamesfilter

Atenție

recomandăm ferm să utilizați parametrii entitynamesfilter și messagenamesfilter pentru a limita fișierele generate la cele pe care le veți utiliza în proiect. În caz contrar, comanda de generare va încerca să genereze cod pentru toate tabelele și mesajele din Dataverse. Procesul va dura un timp semnificativ.

Clasele pentru mesajele găsite în Microsoft.Crm.Sdk.Messages și spațiul de nume Microsoft.Xrm.Sdk.Messages nu sunt generate utilizând această comandă. Ar trebui să includeți doar mesaje care messagenamesfilter nu s-au găsit acolo în parametru, cum ar fi acțiuni particularizate.

Setați suppressINotifyPattern dacă nu construiți o aplicație WPF

Wrappers INotify that are suppressed by this command are used for databinding scenarios with WPF applications. Dacă nu construiți o aplicație WPF cu codul generat, nu aveți nevoie de ele. Utilizați parametrul suppressINotifyPattern pentru a le suprima.

Includere serviceContextName la generarea claselor de mesaje

Dacă generați clase de mesaje, trebuie să includeți întotdeauna parametrul serviceContextName pentru a genera un OrganizationServiceContext, chiar dacă nu îl utilizați. Clasele de mesaje generate necesită o proprietate setată în acest fișier. Aflați mai multe despre eroarea care apare dacă nu o setați.

Consultați și

Grupuri de comenzi CLI Microsoft Power Platform
Prezentare generală Microsoft Power Platform CLI