Dijeli putem


pac modelbuilder

Generator koda za API-je i tablice za Dataverse.

Koristite naredbu pac modelbuilder build za generiranje ranih .NET klasa za tablice Dataverse, prilagođene poruke i razred izveden iz klase OrganizationServiceContext. Saznajte više o korištenju ove naredbe za generiranje ranih vezane klase

Razred izveden iz OrganizationServiceContext:

  • Održava stanje klijenta radi podrške značajkama kao što je upravljanje promjenama.
  • Implementira davatelja upita System.Linq.IQueryable Interface i .NET Language-Integrated Query (LINQ) da biste mogli pisati LINQ upite pomoću podataka Dataverse.

Dodatne informacije o mogućnostima koje alat za generiranje koda omogućuje:

Napomena

Naredba pac modelbuilder build zamjenjuje distribuirani CrmSvcUtil.exe paket NuGet za Microsoft.CrmSdk.CoreTools .

Naredbe

Naredba Opis
pac modelbuilder build Sastavlja model koda za API-je i tablice za Dataverse

pac modelbuilder build

Sastavlja model koda za API-je i tablice za Dataverse

Napomena

Da biste mogli koristiti naredbu build , najprije se morate povezati s alatom Dataverse pomoću pac naredbe stvori auth . Ako imate više veza, pomoću odabira pac za provjeru autentičnosti odaberite okruženje Dataverse za koje želite generirati kod.

Primjer

U sljedećem je primjeru prikazano kako koristiti naredbu build u naredbenom retku.

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

Ista naredba pomoću komponente 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, parametre niza potrebno je okružiti jednostrukim navodima.

Rezultat ove naredbe je da su u mapu zapisane sljedeće c:\src\MyApps\Model datoteke.

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

builderSettings.json sadrži parametre koje ste naveli za naredbu. Pomoću njega možete brzo ponovno stvoriti datoteke dok se stvari mijenjaju. U sljedećem se primjeru prikazuje korištenje generirane buildersettings.json datoteke iz prve naredbe pomoću postavkeTemplateFile:

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

Možete i stvoriti datoteku i koristiti builderSettings.json je umjesto da sve parametre proslijedate naredbi. Slijedi primjer koji je jednak prvom gornjem primjeru:

{
  "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 parametre proslijedite naredbi dok koristite parametar settingsTemplateFile , parametri proslijede naredbi nadjačat će skup u builderSettings.json datoteci.

Parametar settingsTemplateFile iparametar writesettingsTemplateFile ne mogu se istovremeno koristiti.

Obavezni parametri za modelbuilder build

--outdirectory -o

Zapisujte direktorij za datoteke entiteta, poruka i skupa mogućnosti.

Neobavezni parametri za modelbuilder build

--emitentityetc -etc

Kada je postavljen, u generirani kod uvrsti entitet ETC ( šifra vrste entiteta).

Ovaj parametar ne zahtijeva vrijednost. To je prekidač.

--emitfieldsclasses -efc

Generirajte strukturu konstanti koja sadrži sve nazive polja po entitetu u trenutku generiranja koda.

Ovaj parametar ne zahtijeva vrijednost. To je prekidač.

--emitvirtualattributes -eva

Kada se postavi, obuhvaća atribute naziva podrške za pretraživanja koja omogućuju filtriranje prema vrijednostima atributa primarnog naziva atributa pretraživanja.

Ovaj parametar ne zahtijeva vrijednost. To je prekidač.

--entitynamesfilter -enf

Filtrira popis entiteta koji se dohvaćaju prilikom čitanja podataka iz dataverse. Proslijeđen kao popis odvojen točkom sa zarezom. Korištenje entitylogicalname <obrasca>;<naziv entiteta>

--entitytypesfolder -etf

Naziv mape koja sadrži entitete. Zadani je naziv "Entiteti".

--environment -env

Određuje ciljni Dataverse. Vrijednost može biti GUID ili apsolutni https URL. Kada nije navedeno, koristit će se aktivna tvrtka ili ustanova odabrana za trenutni profil za auth.

--generateGlobalOptionSets -go

Emitiraj sve globalne skupove mogućnosti. Napomena: ako entitet sadrži referencu na globalni optionset, emitira se čak i ako taj parametar nije prisutan.

--generatesdkmessages -a

Kada se postavi, šalju se klase poruka SDK-a kao dio generiranja koda.

Ovaj parametar ne zahtijeva vrijednost. To je prekidač.

--language -l

Jezik koji će se koristiti za generirani proxy kod. Ta vrijednost može biti "CS" ili "VB". Zadani je jezik "CS".

--logLevel -ll

Razina zapisnika. Zadana je vrijednost "Isključeno".

Koristite jednu od ovih vrijednosti:

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

--messagenamesfilter -mnf

Filtrira popis poruka koje se dohvaćaju prilikom čitanja podataka iz aplikacije Dataverse. Proslijeđene kao popis odvojen točkom sa zarezom, obavezne poruke (Stvori, Ažuriraj, Izbriši, Dohvati, RetrieveMultiple, Associate i Disassociate) uvijek su uključene. Koristite završnu ili vodeću zvjezdicu (*) s nazivima poruka da biste omogućili sve poruke koje započinju nizom ili završavaju nizom. Using the form <messagename>;<naziv poruke>.

--messagestypesfolder -mtf

Naziv mape koja sadrži poruke. Zadani je naziv "Poruke".

--namespace -n

Prostor naziva za generirani kod. Zadani je prostor za naziv globalno mjesto za naziv.

--optionsetstypesfolder -otf

Naziv mape koji sadrži skupove mogućnosti. Zadani je naziv 'OptionSets'.

--serviceContextName -sctx

Naziv generiranog konteksta servisa. Ako se vrijednost prosljeđuje, koristi se za kontekst servisa. Ako nije, ne generira se kontekst servisa.

--settingsTemplateFile -stf

Sadrži postavke koje će se koristiti za ovo pokretanje sastavljača podatkovnih modela, nadjačava sve duplicirane parametre u naredbenom retku. Nije moguće postaviti kada se koristi --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Kada se postavi, time se potiskuju svi generirani objekti koji su označeni modulom za generiranje koda i verzijom

Ovaj parametar ne zahtijeva vrijednost. To je prekidač.

--suppressINotifyPattern

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

--writesettingsTemplateFile -wstf

Kada je postavljen, zapisuje datoteku postavki u izlazni direktorij s trenutnim proslijeđenim postavkama ili zadanim postavkama.

Primjedbe

U nastavku su navedene preporuke za korištenje naredbe pac modelbuilder build .

Postavljanje parametara entitynamesfilter i messagenamesfilter

Oprez

Preporučujemo da parametreentitynamesfilter i messagenamesfilter ograničite na one koje ćete koristiti u projektu. U suprotnom će naredba build pokušati generirati kod za sve tablice i poruke iz programa Dataverse. To će potrajati znatnu količinu vremena za obradu.

Klase za poruke pronađene u odjeljku Microsoft.Crm.Sdk.Messages i Microsoft.Xrm.Sdk.Messages prostor naziva ne generiraju se pomoću ove naredbe. Trebali biste uključiti samo poruke koje se tamo ne nalaze u parametru messagenamesfilter , kao što su prilagođene akcije.

Postavi suppressINotifyPattern ako ne gradiš WPF aplikaciju

Omotači INotify koji su potisnuti ovom naredbom koriste se za scenarije povezivanje podataka s WPF aplikacijama. Ako ne gradite WPF aplikaciju s generiranim kodom, nisu vam potrebni. Upotrijebite parametar suppressINotifyPattern da biste ih potisnuti.

Uključi serviceContextName prilikom generiranja klasa poruka

Ako generirate klase poruka, uvijek morate uključiti parametar serviceContextNameOrganizationServiceContextda biste generirali , čak i ako ga ne koristite. Generirane klase poruka zahtijevaju skup svojstava u ovoj datoteci. Saznajte više o pogrešci koja se pojavljuje ako je ne postavite.

Vidi također

Microsoft Power Platform CLI Command Groups
Pregled CLI-ja za Microsoft Power Platform