pac modelbuilder

Kodgenerator för Dataverse-API:er och tabeller

Använd kommandot pac modelbuilder build för att generera tidiga .NET-klasser för Dataverse-tabeller, anpassade meddelanden och en klass som härleds från Klassen OrganizationServiceContext. Läs mer om hur du använder det här kommandot för att generera tidiga bundna klasser

Klassen härledd från OrganizationServiceContext:

  • Underhåller tillståndet på klienten för att stödja funktioner som ändringshantering.
  • Implementerar System.Linq.IQueryable Interface och en LINQ-frågeprovider (.NET Language-Integrated Query) så att du kan skriva LINQ-frågor med dataversumdata.

Mer information om de funktioner som det här kodgenereringsverktyget möjliggör:

Anmärkning

Kommandot pac modelbuilder build ersätter det CrmSvcUtil.exe distribuerade med NuGet-paketet Microsoft.CrmSdk.CoreTools .

Commands

Befallning Description
pac modelbuilder build Skapar en kodmodell för Dataverse-API:er och tabeller

pac modelbuilder build

Skapar en kodmodell för Dataverse-API:er och tabeller

Anmärkning

Innan du kan använda build kommandot måste du först ansluta till Dataverse med hjälp av kommandot pac auth create . Om du har flera anslutningar använder du pac-autentiseringsmarkeringen för att välja den Dataverse-miljö som du vill generera kod för.

Example

I följande exempel visas hur du använder build kommandot med en kommandotolk.

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

Och samma kommando med PowerShell:

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

Viktigt!

Du måste omge alla strängparametrar med enkla citattecken när du använder PowerShell.

Resultatet av det här kommandot är att följande filer skrivs till c:\src\MyApps\Model mappen.

C:\src\MyApps\Model\
|---Enheter\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs

builderSettings.json innehåller de parametrar som du angav för kommandot. Du kan använda den för att snabbt återskapa filerna när saker förändras. I följande exempel visas hur du använder den genererade buildersettings.json filen från det första kommandot med hjälp av inställningarnaTemplateFile:

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

Du kan också välja att skapa en builderSettings.json fil och använda den i stället för att skicka alla parametrar till kommandot. Följande är ett exempel som motsvarar det första exemplet ovan:

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

Om du skickar parametrar till kommandot när du använder parametern settingsTemplateFile åsidosätter parametrarna som skickas till kommandot de som anges i builderSettings.json filen.

Du kan inte använda parametern settingsTemplateFile och parametern writesettingsTemplateFile samtidigt.

Obligatoriska parametrar för modellbygge

--outdirectory -o

Skriv katalog för entitets-, meddelande- och alternativuppsättningsfiler.

Valfria parametrar för modellbygge

--emitentityetc -etc

När den anges innehåller entiteten ETC ( entitetstypkod ) i den genererade koden.

Den här parametern kräver inget värde. Det är en växel.

--emitfieldsclasses -efc

Generera en konstantstruktur som innehåller alla fältnamn efter entitet vid tidpunkten för kodgenereringen.

Den här parametern kräver inget värde. Det är en växel.

--emitvirtualattributes -eva

När värdet anges innehåller det stödnamnsattribut för sökningar som aktiverar filtrering på de primära namnattributvärdena för uppslagsattribut.

Den här parametern kräver inget värde. Det är en växel.

--entitynamesfilter -enf

Filtrerar listan över entiteter som hämtas när du läser data från Dataverse. Skickas in som en semikolonavgränsad lista. Använda formuläret <entitylogicalname>;<entitylogicalname>

--entitytypesfolder -etf

Mappnamn som innehåller entiteter. Standardnamnet är "Entiteter".

--environment -env

Anger måldataversum. Värdet kan vara en GUID- eller absolut https-URL. När det inte anges används den aktiva organisation som valts för den aktuella autentiseringsprofilen.

--generateGlobalOptionSets -go

Generera alla globala alternativUppsättningar. Obs! Om en entitet innehåller en referens till en global alternativuppsättning genereras den även om den här växeln inte finns.

--generatesdkmessages -a

När det anges genererar Sdk-meddelandeklasser som en del av kodgenereringen.

Den här parametern kräver inget värde. Det är en växel.

--language -l

Det språk som ska användas för den genererade proxykoden. Det här värdet kan vara antingen "CS" eller "VB". Standardspråket är "CS".

--logLevel -ll

Loggnivå. Standardvärdet är "Av".

Använd något av följande värden:

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

--messagenamesfilter -mnf

Filtrerar listan över meddelanden som hämtas när du läser data från Dataverse. Skickade som en semikolonavgränsad lista, obligatoriska meddelanden (Skapa, Uppdatera, Ta bort, Hämta, RetrieveMultiple, Associera och Ta bort association) ingår alltid. Använd en avslutande eller inledande asterisk (*) med namnen på meddelandena för att tillåta alla meddelanden som börjar med eller slutar med en sträng. Använda formulärets <meddelandenamn>;<messagename>.

--messagestypesfolder -mtf

Mappnamn som innehåller meddelanden. Standardnamnet är "Meddelanden".

--namespace -n

Namnområdet för den genererade koden. Standardnamnområdet är det globala namnområdet.

--optionsetstypesfolder -otf

Mappnamn som innehåller alternativuppsättningar. Standardnamnet är "OptionSets".

--serviceContextName -sctx

Namnet på den genererade tjänstkontexten. Om ett värde skickas in används det för tjänstkontexten. Annars genereras ingen tjänstkontext.

--settingsTemplateFile -stf

Innehåller inställningar som ska användas för den här körningen av Dataverse Model Builder, åsidosätter eventuella duplicerade parametrar på kommandoraden. Det går inte att ange när --writesettingstemplate används.

--suppressGeneratedCodeAttribute -sgca

När detta anges undertrycks alla genererade objekt som taggas med kodgenereringsmotorn och -versionen

Den här parametern kräver inget värde. Det är en växel.

--suppressINotifyPattern

När det är aktiverat skriver du inte INotify-omslutningen för egenskaper och klasser.

--writesettingsTemplateFile -wstf

När den anges skriver du ut en inställningsfil till utdatakatalogen med de aktuella inställningarna eller standardinställningarna.

Anmärkningar

Följande är rekommendationer för att använda pac modelbuilder build kommandot.

Ange parametrarna entitynamesfilter och messagenamesfilter

Försiktighet

Vi rekommenderar starkt att du använder parametrarna entitynamesfilter och messagenamesfilter för att begränsa de genererade filerna till dem som du ska använda i projektet. Annars försöker build-kommandot generera kod för alla tabeller och meddelanden från Dataverse. Det tar lång tid att bearbeta.

Klasser för de meddelanden som finns i namnområdet Microsoft.Crm.Sdk.Messages och Microsoft.Xrm.Sdk.Messages genereras inte med det här kommandot. Du bör bara inkludera meddelanden som inte finns där i parametern messagenamesfilter , till exempel anpassade åtgärder.

Ange suppressINotifyPattern om du inte skapar ett WPF-program

Omslutningarna INotify som undertrycks av det här kommandot används för databindningsscenarier med WPF-program. Om du inte skapar ett WPF-program med den genererade koden behöver du dem inte. Använd parametern suppressINotifyPattern för att undertrycka dem.

Inkludera serviceContextName när du genererar meddelandeklasser

Om du genererar meddelandeklasser bör du alltid inkludera parametern serviceContextName för att generera en OrganizationServiceContext, även om du inte använder den. De genererade meddelandeklasserna kräver en egenskapsuppsättning i den här filen. Läs mer om felet som uppstår om du inte anger detta.

Se även

Microsoft Power Platform CLI-kommandogrupper
Översikt över Microsoft Power Platform CLI