Dalintis per


pac modelbuilder

"Dataverse" API ir lentelių kodų generatorius

Naudokite komandą pac modelbuilder build , kad sugeneruotumėte "Dataverse" lentelių, pasirinktinių pranešimų ir klasės, išvestos iš OrganizationServiceContext klasės, ankstyvąsias .NET klases. Sužinokite daugiau apie šios komandos naudojimą generuojant ankstyvas susietas klases

Klasė, išvesta iš OrganizationServiceContext:

  • Palaiko kliento būseną, kad palaikytų tokias funkcijas kaip keitimų valdymas.
  • Įdiegia System.Linq.IQueryable sąsają ir .NET Language-Integrated užklausos (LINQ) užklausų teikėją, kad galėtumėte rašyti LINQ užklausas naudodami "Dataverse" duomenis.

Daugiau informacijos apie galimybes, kurias įgalina šis kodo generavimo įrankis:

Pastaba.

Komanda pac modelbuilder build pakeičia išplatintą CrmSvcUtil.exepaketą Microsoft.CrmSdk.CoreTools NuGet.

Komandas

Command Apibūdinimas
pac modelbuilder build Sukuria "Dataverse" API ir lentelių kodo modelį

pac modelbuilder build

Sukuria "Dataverse" API ir lentelių kodo modelį

Pastaba.

Kad galėtumėte naudoti komandą, build pirmiausia turite prisijungti prie "Dataverse" naudodami autentifikavimopac kūrimo komandą. Jei turite kelis ryšius, naudodami autentifikavimąpac pasirinkite "Dataverse" aplinką, kurioje norite sugeneruoti kodą.

Pavyzdžiui

Toliau pateiktame pavyzdyje parodyta, kaip naudoti komandą build su komandine eilute.

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

Ir ta pati komanda naudojant "PowerShell":

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

Svarbu

Naudojant "PowerShell", visus eilučių parametrus reikia išskirti viengubomis kabutėmis.

Šios komandos rezultatas yra tas, kad šie failai įrašomi į c:\src\MyApps\Model aplanką.

C:\src\MyApps\Model\
|---Subjektai\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Pranešimai\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs

builderSettings.json yra nurodyti komandos parametrai. Jį galite naudoti norėdami greitai iš naujo sugeneruoti failus pasikeitus dalykams. Toliau pateiktame pavyzdyje pavaizduotas sugeneruotas buildersettings.json failas iš pirmosios komandos naudojant settingsTemplateFile:

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

Taip pat galite pasirinkti sukurti builderSettings.json failą ir naudoti, o ne perduoti visus parametrus į komandą. Toliau pateiktas pavyzdys, atitinkantis pirmąjį aukščiau pateiktą pavyzdį:

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

Jei perkelsite parametrus į komandą naudodami parametrą settingsTemplateFile , komandai perduoti parametrai perrašys faile nustatytus builderSettings.json parametrus.

Vienu metu negalite naudoti parametro settingsTemplateFile ir writesettingsTemplateFile .

Būtini parametrai modelbuilder build

--outdirectory -o

Rašyti objekto, pranešimo ir parinkčių rinkinio failų katalogą.

Pasirinktiniai parametrai, skirti modelbuilder build

--emitentityetc -etc

Kai nustatyta, į sugeneruotą kodą įtraukia subjektą ETC (objekto tipo kodą).

Šiam parametrui nereikia reikšmės. Tai jungiklis.

--emitfieldsclasses -efc

Generuoti konstantų struktūrą, kurioje yra visi laukų pavadinimai pagal objektą kodo generavimo metu.

Šiam parametrui nereikia reikšmės. Tai jungiklis.

--emitvirtualattributes -eva

Kai nustatyta, apima peržvalgos, kurios įgalina peržvalgos atributų pirminių atributų reikšmių filtravimą, palaikymo pavadinimo atributus.

Šiam parametrui nereikia reikšmės. Tai jungiklis.

--entitynamesfilter -enf

Filtruoja objektų sąrašą, nuskaitomą skaitant duomenis iš "Dataverse". Perduodamas kaip kabliataškiu atskirtas sąrašas. Using the form <entitylogicalname>;<entitylogicalname>

--entitytypesfolder -etf

Aplanko pavadinimas, kuriame yra objektų. Numatytasis pavadinimas yra "Subjektai".

--environment -env

Nurodo tikslinį "Dataverse". Reikšmė gali būti GUID arba absoliutus https URL. Jei nenurodyta, bus naudojama aktyvi organizacija, pasirinkta dabartiniam autentifikavimo profiliui.

--generateGlobalOptionSets -go

Praleisti visus visuotinius parinkčių rinkinius. Pastaba: jei objekte yra nuoroda į visuotinį parinkčių rinkinį, jis praleidžiamas, net jei šio perjungimo nėra.

--generatesdkmessages -a

Kai nustatyta, kaip kodo generavimo dalis išleidžia SDK pranešimų klases.

Šiam parametrui nereikia reikšmės. Tai jungiklis.

--language -l

Sugeneruoto tarpinio serverio kodo kalba. Ši reikšmė gali būti CS arba VB. Numatytoji kalba yra CS.

--logLevel -ll

Žurnalo lygis. Numatytoji reikšmė yra Išjungta.

Naudokite vieną iš šių reikšmių:

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

--messagenamesfilter -mnf

Filtruoja laiškų, nuskaitytų skaitant duomenis iš "Dataverse", sąrašą. Perduoti kaip kabliataškiais atskirtų laiškų sąrašas, būtini laiškai (Kurti, Naujinti, Naikinti, Nuskaityti, Gautidaugelio, Susieti ir Atsieti) visada įtraukiami. Su laiškų pavadinimais naudokite žvaigždutę (*) pabaigoje arba pradžioje, kad būtų leidžiami visi laiškai, prasidedantys eilute arba baigianti eilute. Naudojant formos <pranešimo pavadinimą>;<pranešimo pavadinimas>.

--messagestypesfolder -mtf

Aplanko, kuriame yra pranešimų, pavadinimas. Numatytasis pavadinimas yra Pranešimai.

--namespace -n

Sugeneruoto kodo vardų sritis. Numatytoji vardų sritis yra visuotinė vardų sritis.

--optionsetstypesfolder -otf

Aplanko pavadinimas, kuriame yra parinkčių rinkiniai. Numatytasis pavadinimas yra OptionSets.

--serviceContextName -sctx

Sugeneruoto tarnybos konteksto pavadinimas. Jei reikšmė perduodama, ji naudojama tarnybos kontekste. Jei ne, negeneruojamas joks tarnybos kontekstas.

--settingsTemplateFile -stf

Yra parametrų, kurie bus naudojami šiam "Dataverse" modelio daryklės paleidimui, perrašo visus pasikartojančius parametrus komandų eilutėje. Negalima nustatyti, kai naudojamas --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Kai nustatyta, nerodyti visų sugeneruotų objektų, pažymėtų kodo generavimo moduliu ir versija

Šiam parametrui nereikia reikšmės. Tai jungiklis.

--suppressINotifyPattern

Įgalinus, nerašo ypatybių ir klasių "INotify" aplanko.

--writesettingsTemplateFile -wstf

Kai nustatyta, parametrų failą įrašo išvesties kataloge naudodamas dabartinius perduotus parametrus arba numatytuosius parametrus.

Pastabos

Toliau pateikiamos rekomendacijos, kaip naudoti komandą pac modelbuilder build .

entitynamesfilter Parametrų ir messagenamesfilter nustatymas

Perspėjimas

Primygtinai rekomenduojame naudoti entitynamesfilter ir messagenamesfilter parametrus, kad apribotumėte sugeneruotus failus iki tų, kuriuos naudosite projekte. Kitu atveju komponavimo versija bandys sugeneruoti kodą visoms lentelėms ir pranešimams iš "Dataverse". Tai užims daug laiko apdoroti.

Microsoft.Crm.Sdk.Messages ir Microsoft.Xrm.Sdk.Messages vardų srityje rastų pranešimų klasės negeneruojamos naudojant šią komandą. Į parametrą messagenamesfilter turėtumėte įtraukti tik ten nerastus pranešimus, pvz., pasirinktinius veiksmus.

Nustatyti suppressINotifyPattern , jei nekuriate WPF programos

Šios INotify komandos nerodyti aplanko įrankiai naudojami duomenų susiejimo scenarijams su WPF programomis. Jei nesukuriate WPF programos naudodami sugeneruotą kodą, jų nereikia. Naudokite suppressINotifyPattern parametrą, kad jie būtų nerodyti.

Įtraukti serviceContextName generuojant pranešimų klases

Jei generuojate pranešimų klases, visada turite įtraukti parametrą serviceContextName , kad sugeneruotumėte OrganizationServiceContext, net jei jo nenaudojate. Sugeneruotų pranešimų klasėms reikia šiame faile nustatytų ypatybių. Sužinokite daugiau apie klaidą, kuri įvyksta, jei jos nenustatysite.

Taip pat žr.

"Microsoft Power Platform" CLI komandų grupės
"Microsoft Power Platform" CLI apžvalga