Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Codegenerator voor Dataverse-API's en -tabellen
Gebruik de buildopdracht pac modelbuilder om early-bound .NET-klassen te genereren voor Dataverse-tabellen, aangepaste berichten en een klasse die is afgeleid van de Klasse OrganizationServiceContext. Meer informatie over het gebruik van deze opdracht voor het genereren van vroege afhankelijke klassen
De klasse die is afgeleid van OrganizationServiceContext:
- Onderhoudt de status van de client om functies zoals wijzigingsbeheer te ondersteunen.
- Hiermee wordt de queryprovider System.Linq.IQueryable Interface en een .NET Language-Integrated Query-queryprovider (LINQ) geïmplementeerd, zodat u LINQ-query's kunt schrijven met behulp van Dataverse-gegevens.
Voor meer informatie over de mogelijkheden die dit hulpprogramma voor het genereren van code mogelijk maakt:
- Late gebonden en vroege programmering met behulp van de Organisatie-service
- OrganizationServiceContext gebruiken
- Query's bouwen met LINQ
Opmerking
De pac modelbuilder build opdracht vervangt het CrmSvcUtil.exe gedistribueerde pakket Microsoft.CrmSdk.CoreTools NuGet.
Commands
| Command | Description |
|---|---|
| pac modelbuilder build | Hiermee bouwt u een codemodel voor Dataverse-API's en -tabellen |
pac modelbuilder build
Hiermee bouwt u een codemodel voor Dataverse-API's en -tabellen
Opmerking
Voordat u de build opdracht kunt gebruiken, moet u eerst verbinding maken met Dataverse met behulp van de opdracht pac-verificatie maken . Als u meerdere verbindingen hebt, gebruikt u de pac-verificatieselectie om de Dataverse-omgeving te kiezen waarvoor u code wilt genereren.
Example
In het volgende voorbeeld ziet u hoe u de build opdracht gebruikt met een opdrachtprompt.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
En dezelfde opdracht met behulp van PowerShell:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Belangrijk
U moet tekenreeksparameters tussen enkele aanhalingstekens plaatsen wanneer u PowerShell gebruikt.
Het resultaat van deze opdracht is dat de volgende bestanden naar de c:\src\MyApps\Model map worden geschreven.
C:\src\MyApps\Model\
|---Entiteiten\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Berichten\
| |--examp_myapi.cs
|---EntityOptionSetEnum.csbuilderSettings.json
|--- OrgContext.cs
|---
builderSettings.json de parameters bevat die u voor de opdracht hebt opgegeven. U kunt het gebruiken om de bestanden snel opnieuw te genereren wanneer de dingen veranderen. In het volgende voorbeeld ziet u hoe u het gegenereerde buildersettings.json bestand gebruikt vanaf de eerste opdracht met behulp van de settingsTemplateFile:
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
U kunt er ook voor kiezen om een builderSettings.json bestand te maken en dat te gebruiken in plaats van alle parameters door te geven aan de opdracht. Hier volgt een voorbeeld dat gelijk is aan het eerste voorbeeld hierboven:
{
"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
}
Als u parameters doorgeeft aan de opdracht terwijl u de parameter settingsTemplateFile gebruikt, worden de parameters die aan de opdracht worden doorgegeven, overschreven die in het builderSettings.json bestand.
U kunt de parameter settingsTemplateFile en de parameter writesettingsTemplateFile niet tegelijkertijd gebruiken.
Vereiste parameters voor modelbuilder-build
--outdirectory
-o
Map schrijven voor entiteits-, bericht- en optiesetbestanden.
Optionele parameters voor modelbuilder-build
--emitentityetc
-etc
Wanneer deze is ingesteld, neemt u de entiteit ETC (entiteitstypecode) op in de gegenereerde code.
Voor deze parameter is geen waarde vereist. Het is een switch.
--emitfieldsclasses
-efc
Genereer een constantenstructuur die alle veldnamen per entiteit bevat op het moment van het genereren van code.
Voor deze parameter is geen waarde vereist. Het is een switch.
--emitvirtualattributes
-eva
Wanneer deze optie is ingesteld, bevat u ondersteunende naamkenmerken voor zoekacties die filteren op de primaire naamkenmerkwaarden van opzoekkenmerken mogelijk maken.
Voor deze parameter is geen waarde vereist. Het is een switch.
--entitynamesfilter
-enf
Hiermee filtert u de lijst met entiteiten die worden opgehaald bij het lezen van gegevens uit Dataverse. Doorgegeven als een door puntkomma's gescheiden lijst. Met behulp van de form <entitylogicalname>;<entitylogicalname>
--entitytypesfolder
-etf
Mapnaam die entiteiten bevat. De standaardnaam is 'Entiteiten'.
--environment
-env
Hiermee geeft u de doel Dataverse. De waarde kan een GUID- of absolute HTTPS-URL zijn. Wanneer dit niet is opgegeven, wordt de actieve organisatie gebruikt die is geselecteerd voor het huidige verificatieprofiel.
--generateGlobalOptionSets
-go
Alle Global OptionSets verzenden. Opmerking: als een entiteit een verwijzing naar een globale optieset bevat, wordt deze verzonden, zelfs als deze schakeloptie niet aanwezig is.
--generatesdkmessages
-a
Wanneer dit is ingesteld, verzendt u Sdk-berichtklassen als onderdeel van het genereren van code.
Voor deze parameter is geen waarde vereist. Het is een switch.
--language
-l
De taal die moet worden gebruikt voor de gegenereerde proxycode. Deze waarde kan 'CS' of 'VB' zijn. De standaardtaal is CS.
--logLevel
-ll
Logboekniveau. De standaardwaarde is 'Uit'.
Gebruik een van deze waarden:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Hiermee filtert u de lijst met berichten die worden opgehaald bij het lezen van gegevens uit Dataverse. Doorgegeven als een door puntkomma's gescheiden lijst, vereiste berichten (Maken, Bijwerken, Verwijderen, Ophalen, RetrieveMultiple, Koppelen en Ontkoppelen) worden altijd opgenomen. Gebruik een volg- of voorloopsterretje (*) met de namen van de berichten om alle berichten toe te staan die beginnen met of eindigen op een tekenreeks. De berichtnaam< van het formulier >gebruiken;<berichtnaam>.
--messagestypesfolder
-mtf
Mapnaam die berichten bevat. De standaardnaam is 'Berichten'.
--namespace
-n
De naamruimte voor de gegenereerde code. De standaardnaamruimte is de globale naamruimte.
--optionsetstypesfolder
-otf
Mapnaam die optiesets bevat. De standaardnaam is OptionSets.
--serviceContextName
-sctx
De naam voor de gegenereerde servicecontext. Als een waarde wordt doorgegeven, wordt deze gebruikt voor de servicecontext. Zo niet, dan wordt er geen servicecontext gegenereerd.
--settingsTemplateFile
-stf
Bevat instellingen die moeten worden gebruikt voor deze uitvoering van de Dataverse Model Builder, overschrijft eventuele dubbele parameters op de opdrachtregel. Kan niet worden ingesteld wanneer --writesettingstemplate wordt gebruikt.
--suppressGeneratedCodeAttribute
-sgca
Wanneer deze optie is ingesteld, worden alle gegenereerde objecten onderdrukt die worden getagd met de engine en versie van de codegeneratie
Voor deze parameter is geen waarde vereist. Het is een switch.
--suppressINotifyPattern
Als deze optie is ingeschakeld, worden de INotify-wrappers niet geschreven voor eigenschappen en klassen.
--writesettingsTemplateFile
-wstf
Wanneer dit is ingesteld, schrijft u een instellingenbestand naar de uitvoermap met de huidige doorgegeven instellingen of standaardinstellingen.
Opmerkingen
Hieronder volgen aanbevelingen voor het gebruik van de pac modelbuilder build opdracht.
entitynamesfilter De en messagenamesfilter parameters instellen
Waarschuwing
We raden u ten zeerste aan de parameters entitynamesfilter en messagenamesfilter te gebruiken om de gegenereerde bestanden te beperken tot de bestanden die u in uw project gaat gebruiken. Anders probeert de build-opdracht code te genereren voor alle tabellen en berichten van Dataverse. Dit duurt een aanzienlijke hoeveelheid tijd om te verwerken.
Klassen voor de berichten in de naamruimte Microsoft.Crm.Sdk.Messages en Microsoft.Xrm.Sdk.Messages worden niet gegenereerd met deze opdracht. U moet alleen berichten opnemen die daar niet in de messagenamesfilter parameter zijn gevonden, zoals aangepaste acties.
Instellen suppressINotifyPattern als u geen WPF-toepassing bouwt
De INotify wrappers die door deze opdracht worden onderdrukt, worden gebruikt voor gegevensbindingsscenario's met WPF-toepassingen. Als u geen WPF-toepassing bouwt met de gegenereerde code, hebt u deze niet nodig. Gebruik de parameter suppressINotifyPattern om ze te onderdrukken.
Opnemen serviceContextName bij het genereren van berichtklassen
Als u berichtklassen genereert, moet u altijd de parameter serviceContextName opnemen om een OrganizationServiceContext, zelfs als u deze niet gebruikt, te genereren. Voor de gegenereerde berichtklassen is een eigenschapsset in dit bestand vereist. Meer informatie over de fout die optreedt als u deze niet instelt.
Zie ook
Microsoft Power Platform CLI-opdrachtgroepen
Overzicht van Microsoft Power Platform CLI