Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
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:
- Programare limită și legată timpuriu utilizând serviciul Organizație
- Use OrganizationServiceContext
- Crearea interogărilor cu LINQ
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:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--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
Vă 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