Deli putem


pac modelbuilder

Generator koda za Dataverse API-je i tabele

Koristite pac modelbuilder build komandu da biste generisali ranije povezane .NET klase za Dataverse tabele, prilagođene poruke i klasu koja je izvedena iz klase OrganizationServiceContext Class. Saznajte više o korišćenju ove komande za generisanje ranih povezanih klasa

Klasa izvedena iz OrganizationServiceContext:

  • Održava stanje na klijentu da bi podržavao funkcije kao što je upravljanje izmenama.
  • Primenjuje System.Linq.IQueryable Interface i .NET Language-Integrated Query (LINQ) dobavljača upita tako da možete da pišete LINQ upite pomoću Dataverse podataka.

Za više informacija o mogućnostima koje omogućava ova alatka za generisanje koda:

Belešku

Komanda pac modelbuilder build zamenjuje distribuirani CrmSvcUtil.exepaketom Microsoft.CrmSdk.CoreTools NuGet.

Komande

Command Opis
pac modelbuilder build Pravi model koda za Dataverse API-je i tabele

pac modelbuilder build

Pravi model koda za Dataverse API-je i tabele

Belešku

Da biste mogli da koristite komandubuild, prvo morate da se povežete sa Dataverse pomoću komande za potvrdu vešanja pristupa. Ako imate više veza, koristite izbor pac potvrde da biste odabrali Dataverse okruženje za koje želite da generišete kôd.

Primer

Sledeći primer pokazuje kako da koristite komandu sa build komandnoj liniji.

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

I ista komanda pomoću programa PowerShell:

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

Važno

Kada koristite PowerShell, potrebno je da sve parametre niske okružite jednostruke navodnike.

Rezultat ove komande je da su sledeće datoteke upisane u fasciklu c:\src\MyApps\Model .

C:\src\MyApps\Model\
|---Entiteta\
| |--account.cs
| |--contact.cs
|---Sets\
| |--addresstypes.cs
|---Poruke\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs

builderSettings.json sadrži parametre koje ste naveli za komandu. Možete da je koristite da biste brzo ponovo generisali datoteke kako se stvari menjaju. Sledeći primer prikazuje korišćenje generisane buildersettings.json datoteke iz prve komande pomoću postavkiTemplateFile:

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

Takođe možete odabrati da kreirate datoteku builderSettings.json i koristite je umesto da komandi prenesete sve parametre. Sledi primer koji je jednak prvom gorenavedenom primeru:

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

Ako dodate parametre komandi dok koristite parametar SettingsTemplateFile, parametri prosleđeni komandi zameniće te skupove u datoteci.builderSettings.json

Ne možete da koristite parametre SettingsTemplateFile i parametar writesettingsTemplateFile u isto vreme.

Obavezni parametri za izdanje modela

--outdirectory -o

Pišite direktorijum za datoteke entiteta, poruke i skupa opcija.

Opcionalni parametri za izdanje modela

--emitentityetc -etc

Kada se podesi, uključuje entitet ETC ( kôd tipa entiteta ) u generisani kôd.

Ovaj parametar ne zahteva nikakvu vrednost. To je prekidaи.

--emitfieldsclasses -efc

Generišite strukturu konstanti koja sadrži sva imena polja po entitetu u vreme generisanja koda.

Ovaj parametar ne zahteva nikakvu vrednost. To je prekidaи.

--emitvirtualattributes -eva

Kada se podesi, uključuje pomoćne atribute imena za pronalaženja koja omogućavaju filtriranje vrednosti primarnog atributa imena atributa za pronalaženje.

Ovaj parametar ne zahteva nikakvu vrednost. To je prekidaи.

--entitynamesfilter -enf

Filtrira listu entiteta se preuzima prilikom čitanja podataka iz usluge Dataverse. Prošao je kao tačka-zarez odvojen lista. Korišćenje entitetskog imena <obrasca>;<entitylogicalname>

--entitytypesfolder -etf

Ime fascikle koje sadrži entitete. Podrazumevano ime je "Entiteti".

--environment -env

Navodi ciljni Dataverse. Vrednost može biti GUID ili apsolutni https URL. Kada nije navedeno, koristiće se aktivna organizacija izabrana za trenutni profil potvrde potvrde.

--generateGlobalOptionSets -go

Emituj sve opšte skupove opcija. Napomena: Ako entitet sadrži referencu na globalni skup opcija, on se emituje čak i ako prekidač nije prisutan.

--generatesdkmessages -a

Kada se podesi, emituje klase Sdk poruka kao deo generisanje koda.

Ovaj parametar ne zahteva nikakvu vrednost. To je prekidaи.

--language -l

Jezik koji se koristi za generisani proxy kôd. Ova vrednost može biti "CS" ili "VB". Podrazumevani jezik je "CS".

--logLevel -ll

Nivo evidencije. Podrazumevana vrednost je "Isključeno".

Koristite jednu od ovih vrednosti:

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

--messagenamesfilter -mnf

Filtrira listu poruka koje se preuzimaju prilikom čitanja podataka iz usluge Dataverse. Prosleđene kao lista razdvojena tačkom i zarezom, obavezne poruke (kreiranje, ažuriranje, brisanje, preuzimanje, preuzimanjeMultaple, Povezivanje i razdvajanje) uvek su uključene. Koristite zvezdicu na kraju ili na početku (*) sa imenima poruka da biste svim porukama omogućili da sve poruke počinju niskom ili da se završavaju na njih. Korišćenje imena poruke <obrasca>;<ime poruke>.

--messagestypesfolder -mtf

Ime fascikle koje sadrži poruke. Podrazumevano ime je "Poruke".

--namespace -n

Imenski prostor za generisani kod. Podrazumevani prostor za ime je globalni prostor za ime.

--optionsetstypesfolder -otf

Ime fascikle koje sadrži skupove opcija. Podrazumevano ime je "OptionSets".

--serviceContextName -sctx

Ime generisanog konteksta usluge. Ako se prosleđuje vrednost, koristi se za kontekst usluge. Ako nije, ne generiše se kontekst usluge.

--settingsTemplateFile -stf

Sadrži postavke koje će se koristiti za ovo pokretanje alatke "Izrada modela podataka" i zamenjuje sve duplirane parametre na komandnoj liniji. Nije moguće postaviti kada se koristi --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Kada se podesi, ovo sprečava pojavljivanje svih generisanih objekata koji su označeni mašinom za generisanje koda i verzijom

Ovaj parametar ne zahteva nikakvu vrednost. To je prekidaи.

--suppressINotifyPattern

Kada je omogućeno, ne piše Omotače INotify za svojstva i klase.

--writesettingsTemplateFile -wstf

Kada se postavi, piše datoteku sa postavkama u izlazni direktorijum sa trenutnim prosleđenim postavkama ili podrazumevanim postavkama.

Primedbe

Slede preporuke za korišćenje komande pac modelbuilder build .

Podešavanje i entitynamesfilter parametara messagenamesfilter

Pažnja

Preporučujemo da koristite parametre entitynamesfilter i messagenamesfilter da biste ograničili generisane datoteke na one koje ćete koristiti u projektu. U suprotnom, komanda "Napravi" će pokušati da generiše kôd za sve tabele i poruke iz usluge Dataverse. Obrada će potrajati.

Klase za poruke koje su pronađene u prostoru imena Microsoft.Crm.Sdk.Messages i Microsoft.Xrm.Sdk.Messages ne generišu se pomoću ove komande. Trebalo bi da uključite samo poruke koje nisu pronađene u parametru messagenamesfilter , kao što su prilagođene radnje.

Postavljanje suppressINotifyPattern ako ne gradite WPF aplikaciju

Omotači INotify koje ova komanda sprečava koriste se za scenarije povezivanja podataka sa WPF aplikacijama. Ako ne kreirate WPF aplikaciju sa generisanim kodom, nisu vam potrebni. Koristite parametar suppressINotifyPattern da biste ih sprečili.

Uključi serviceContextName prilikom generisanja klasa poruka

Ako generišete klase poruka, uvek bi trebalo da uključite parametar serviceContextNameOrganizationServiceContextda biste generisali , čak i ako ga ne koristite. Generisane klase poruka zahtevaju skup svojstava u ovoj datoteci. Saznajte više o grešci do koje dolazi ako je ne postavite.

Takođe pogledajte

Microsoft Power Platform CLI Command Groups
Microsoft Power Platform CLI pregled