Kopīgot, izmantojot


pac modelbuilder

Kodu ģenerators Dataverse API un tabulām.

Izmantojiet komandu, pac modelbuilder build lai ģenerētu agrīnās saistītās .NET klases Dataverse tabulām, pielāgotiem ziņojumiem un klasi, kas atvasināta no OrganizationServiceContext klases. Uzziniet vairāk par šīs komandas izmantošanu, lai ģenerētu agrīnās saistītās klases

Klase, kas atvasināta no OrganizationServiceContext:

  • Uztur klienta stāvokli, lai atbalstītu tādus līdzekļus kā izmaiņu pārvaldība.
  • Ievieš System.Linq.IQueryable interfeisu un .NET Language-Integrated vaicājumu (LINQ) vaicājumu nodrošinātāju, lai jūs varētu rakstīt LINQ vaicājumus, izmantojot Dataverse datus.

Lai iegūtu papildinformāciju par iespējām, ko nodrošina šis koda ģenerēšanas rīks, veiciet tālāk norādītās darbības.

Note

Komanda pac modelbuilder build aizstāj izplatīto CrmSvcUtil.exe ar Microsoft.CrmSdk.CoreTools NuGet pakotni.

Komandas

Komanda Apraksts
pac modelbuilder build Izveido koda modeli Dataverse API un tabulām

pac modelbuilder build

Izveido koda modeli Dataverse API un tabulām

Note

Lai varētu izmantot komandu, build vispirms ir jāizveido savienojums ar Dataverse, izmantojot komandupac auth create. Ja jums ir vairāki savienojumi, izmantojiet autentifikācijaspac atlasi, lai izvēlētos Dataverse vidi, kurai vēlaties ģenerēt kodu.

Piemērs

Šajā piemērā ir parādīts, kā izmantot build komandu ar komandu uzvedni.

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

Un tā pati komanda, izmantojot PowerShell:

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

Svarīgi

Izmantojot PowerShell, visi virknes parametri ir jāieskauj ar vienpēdiņām.

Šīs komandas rezultāts ir tāds, ka mapē tiek ierakstīti šādi faili c:\src\MyApps\Model .

C:\src\MyApps\Model\
|---Vienības\
| |--account.cs
| |--contact.cs
|---opciju kopas\
| |--addresstypes.cs
|---ziņojumi\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs

builderSettings.json satur komandai norādītos parametrus. Varat to izmantot, lai ātri atjaunotu failus, kad lietas mainās. Tālāk sniegtajā piemērā parādīts, kā ģenerētais buildersettings.json fails tiek izmantots no pirmās komandas, izmantojot settingsTemplateFile:

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

Varat arī izvēlēties izveidot builderSettings.json failu un izmantot to, nevis nodot komandai visus parametrus. Šis ir piemērs, kas ir līdzvērtīgs pirmajam piemēram iepriekš:

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

Ja komandai nododat parametrus, izmantojot parametru settingsTemplateFile , komandai nodotie parametri ignorēs failā iestatītos builderSettings.json parametrus.

Parametru settingsTemplateFile un parametru writesettingsTemplateFile nevar izmantot vienlaikus.

Nepieciešamie parametri modelbuilder build

--outdirectory -o

Rakstiet direktoriju entītijas, ziņojumu un opciju kopas failiem.

Neobligātie parametri modelbuilder build

--emitentityetc -etc

Kad iestatīts, ģenerētajā kodā iekļauj entītiju ETC ( entītijas tipa kods ).

Šim parametram nav nepieciešama vērtība. Tas ir slēdzis.

--emitfieldsclasses -efc

Ģenerējiet konstantu struktūru, kas satur visus lauku nosaukumus pēc entītijas koda ģenerēšanas laikā.

Šim parametram nav nepieciešama vērtība. Tas ir slēdzis.

--emitvirtualattributes -eva

Ja iestatīts, ietver atbalsta nosaukuma atribūtus uzmeklēšanai, kas iespējo uzmeklēšanas atribūtu primāro nosaukuma atribūtu vērtību filtrēšanu.

Šim parametram nav nepieciešama vērtība. Tas ir slēdzis.

--entitynamesfilter -enf

Filtri entītiju saraksts tiek izgūts, lasot datus no Dataverse. Nodots kā semikolu atdalīts saraksts. Izmantojot veidlapu <entitylogicalname>;<EntityLogicalName>

--entitytypesfolder -etf

Mapes nosaukums, kurā ir entītijas. Noklusējuma nosaukums ir "Entītijas".

--environment -env

Norāda mērķa Dataverse. Vērtība var būt GUID vai absolūtais https URL. Ja tas nav norādīts, tiks izmantota aktīvā organizācija, kas atlasīta pašreizējam autentifikācijas profilam.

--generateGlobalOptionSets -go

Emitēt visas globālās opciju kopas. Piezīme: Ja entītijā ir atsauce uz globālo opciju kopu, tā tiek emitēta pat tad, ja šī slēdža nav.

--generatesdkmessages -a

Ja iestatīts, koda ģenerēšanas ietvaros izstaro Sdk ziņojumu klases.

Šim parametram nav nepieciešama vērtība. Tas ir slēdzis.

--language -l

Ģenerētajam starpniekservera kodam izmantojamā valoda. Šī vērtība var būt "CS" vai "VB". Noklusējuma valoda ir "CS".

--logLevel -ll

Žurnāla līmenis. Noklusējuma vērtība ir "Izslēgts".

Izmantojiet vienu no šīm vērtībām:

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

--messagenamesfilter -mnf

Filtrē to ziņojumu sarakstu, kas tiek izgūti, lasot datus no Dataverse. Obligāti ziņojumi (Izveidot, Atjaunināt, Dzēst, Izgūt, Izgūt, Izgūt vairākus, Saistīt un Atsaistīt) vienmēr tiek iekļauti kā semikolu atdalīts saraksts. Izmantojiet beigu vai sākuma zvaigznīti (*) ar ziņojumu nosaukumiem, lai atļautu visus ziņojumus, kas sākas ar virkni vai beidzas ar to. Izmantojot veidlapu <ziņojuma nosaukums>;<ziņojuma nosaukums>.

--messagestypesfolder -mtf

Mapes nosaukums, kurā ir ziņojumi. Noklusējuma nosaukums ir "Ziņojumi".

--namespace -n

Ģenerētā koda nosaukumvieta. Noklusējuma nosaukumvieta ir globālā nosaukumvieta.

--optionsetstypesfolder -otf

Mapes nosaukums, kurā ir opciju kopas. Noklusējuma nosaukums ir "OptionSets".

--serviceContextName -sctx

Ģenerētā pakalpojuma konteksta nosaukums. Ja vērtība tiek nodota, tā tiek izmantota pakalpojuma kontekstam. Ja tā nav, pakalpojuma konteksts netiek ģenerēts.

--settingsTemplateFile -stf

Satur iestatījumus, kas jāizmanto šai Dataverse modeļu veidotāja izpildei, ignorē visus komandrindas parametru dublikātus. Nevar iestatīt, ja tiek izmantota --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Kad tas ir iestatīts, tas nomāc visus ģenerētos objektus, kas tiek atzīmēti ar koda ģenerēšanas dzinēju un versiju

Šim parametram nav nepieciešama vērtība. Tas ir slēdzis.

--suppressINotifyPattern

Ja tas ir iespējots, neraksta INotify iesaiņojumus rekvizītiem un klasēm.

--writesettingsTemplateFile -wstf

Kad iestatīts, ieraksta iestatījumu failu izvades direktorijā ar pašreizējiem nodotajiem iestatījumiem vai noklusējuma iestatījumiem.

Piezīmes

Tālāk ir sniegti ieteikumi komandas lietošanai pac modelbuilder build .

entitynamesfilter Iestatiet un messagenamesfilter parametrus

Brīdinājums

Stingri ieteicams izmantot parametrus entitynamesfilter un messagenamesfilter, lai ierobežotu ģenerētos failus līdz tiem, kurus izmantosiet savā projektā. Pretējā gadījumā būvēšanas komanda mēģinās ģenerēt kodu visām tabulām un ziņojumiem no Dataverse. Tas prasīs ievērojamu laiku.

Izmantojot šo komandu, netiek ģenerētas Microsoft.Crm.Sdk.Messages un Microsoft.Xrm.Sdk.Messages nosaukumvietu ziņojumu klases. Parametrā messagenamesfilter jāiekļauj tikai tie ziņojumi, kas tur nav atrodami, piemēram, pielāgotas darbības.

Iestatīšana suppressINotifyPattern , ja neveidojat WPF lietojumprogrammu

Iesaiņojumi INotify , kurus nomāc šī komanda, tiek izmantoti datu saistīšanas scenārijiem ar WPF lietojumprogrammām. Ja jūs neveidojat WPF lietojumprogrammu ar ģenerēto kodu, jums tie nav nepieciešami. Izmantojiet parametru suppressINotifyPattern , lai tos nomāktu.

Iekļaut, serviceContextName ģenerējot ziņojumu klases

Ja ģenerējat ziņojumu klases, vienmēr jāiekļauj parametrs serviceContextName , lai ģenerētu OrganizationServiceContext, pat ja to neizmantojat. Ģenerētajām ziņojumu klasēm ir nepieciešama rekvizītu kopa šajā failā. Uzziniet vairāk par kļūdu, kas rodas, ja to neiestatāt.

Skatiet arī

Microsoft Power Platform CLI komandu grupas
Microsoft Power Platform CLI pārskats