Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Generatore di codice per API e tabelle di Dataverse
Usare il comando pac modelbuilder build per generare classi .NET con associazione anticipata per tabelle Dataverse, messaggi personalizzati e una classe derivata dalla classe OrganizationServiceContext. Altre informazioni sull'uso di questo comando per generare classi associate iniziali
Classe derivata da OrganizationServiceContext:
- Mantiene lo stato sul client per supportare funzionalità come la gestione delle modifiche.
- Implementa l'interfaccia System.Linq.IQueryable e un provider di query LINQ (.NET Language-Integrated Query) in modo da poter scrivere query LINQ usando dati Dataverse.
Per altre informazioni sulle funzionalità abilitate da questo strumento di generazione del codice:
- Programmazione con associazione tardiva e con associazione anticipata tramite il servizio Organizzazione
- Usare OrganizationServiceContext
- Creare query con LINQ
Annotazioni
Il pac modelbuilder build comando sostituisce l'oggetto CrmSvcUtil.exe distribuito con il pacchetto NuGet Microsoft.CrmSdk.CoreTools .
Commands
| Command | Description |
|---|---|
| pac modelbuilder build | Compila un modello di codice per le API e le tabelle di Dataverse |
pac modelbuilder build
Compila un modello di codice per le API e le tabelle di Dataverse
Annotazioni
Prima di poter usare il build comando è necessario connettersi a Dataverse usando il comando pac auth create . Se si dispone di più connessioni, usare la selezione dell'autenticazione pac per scegliere l'ambiente Dataverse per cui si vuole generare il codice.
Example
Nell'esempio seguente viene illustrato come usare il build comando con un prompt dei comandi.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
E lo stesso comando con PowerShell:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Importante
È necessario racchiudere qualsiasi parametro stringa tra virgolette singole quando si usa PowerShell.
Il risultato di questo comando è che i file seguenti vengono scritti nella c:\src\MyApps\Model cartella .
C:\src\MyApps\Model\
|---Entità\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |
|---
|---
|---
builderSettings.json contiene i parametri specificati per il comando. È possibile usarlo per rigenerare rapidamente i file man mano che cambiano le cose. L'esempio seguente illustra l'uso del file generato buildersettings.json dal primo comando usando settingsTemplateFile:
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
È anche possibile scegliere di creare un builderSettings.json file e usarlo invece di passare tutti i parametri al comando . Di seguito è riportato un esempio equivalente al primo esempio precedente:
{
"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
}
Se si passano parametri al comando durante l'uso del parametro settingsTemplateFile , i parametri passati al comando eseguiranno l'override di quelli impostati nel builderSettings.json file.
Non è possibile usare il parametro settingsTemplateFile e il parametro writesettingsTemplateFile contemporaneamente.
Parametri obbligatori per la compilazione modelbuilder
--outdirectory
-o
Scrivere la directory per i file entity, message e optionset.
Parametri facoltativi per la compilazione modelbuilder
--emitentityetc
-etc
Se impostato, include l'entità ETC ( codice del tipo di entità ) nel codice generato.
Questo parametro non richiede alcun valore. È un cambio.
--emitfieldsclasses
-efc
Generare una struttura di costanti che contiene tutti i nomi di campo per entità al momento della generazione del codice.
Questo parametro non richiede alcun valore. È un cambio.
--emitvirtualattributes
-eva
Se impostato, include gli attributi del nome di supporto per le ricerche che consentono di filtrare i valori dell'attributo del nome primario degli attributi di ricerca.
Questo parametro non richiede alcun valore. È un cambio.
--entitynamesfilter
-enf
I filtri dell'elenco di entità vengono recuperati durante la lettura dei dati da Dataverse. Passato come elenco separato da punto e virgola. Utilizzando il formato <entitylogicalname>;<entitylogicalname>
--entitytypesfolder
-etf
Nome della cartella contenente le entità. Il nome predefinito è 'Entities'.
--environment
-env
Specifica l'oggetto Dataverse di destinazione. Il valore può essere un GUID o un URL https assoluto. Se non specificato, verrà usata l'organizzazione attiva selezionata per il profilo di autenticazione corrente.
--generateGlobalOptionSets
-go
Generare tutti i set di opzioni globali. Nota: se un'entità contiene un riferimento a un set di opzioni globali, viene generata anche se questa opzione non è presente.
--generatesdkmessages
-a
Se impostato, genera classi di messaggi sdk come parte della generazione del codice.
Questo parametro non richiede alcun valore. È un cambio.
--language
-l
Lingua da usare per il codice proxy generato. Questo valore può essere 'CS' o 'VB'. La lingua predefinita è "CS".
--logLevel
-ll
Livello di log. Il valore predefinito è 'Off'.
Usare uno di questi valori:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Filtra l'elenco dei messaggi recuperati durante la lettura dei dati da Dataverse. Passati come elenco separato da punto e virgola, i messaggi obbligatori (Create, Update, Delete, Retrieve, RetrieveMultiple, Associate e Disassociate) vengono sempre inclusi. Usare un asterisco finale o iniziale (*) con i nomi dei messaggi per consentire a tutti i messaggi che iniziano con o terminano con una stringa. Utilizzando il formato <messagename>;<messagename>.
--messagestypesfolder
-mtf
Nome della cartella che contiene messaggi. Il nome predefinito è "Messages".
--namespace
-n
Spazio dei nomi per il codice generato. Lo spazio dei nomi predefinito è lo spazio dei nomi globale.
--optionsetstypesfolder
-otf
Nome cartella contenente i set di opzioni. Il nome predefinito è 'OptionSets'.
--serviceContextName
-sctx
Nome del contesto del servizio generato. Se viene passato un valore, viene usato per il contesto del servizio. In caso contrario, non viene generato alcun contesto del servizio.
--settingsTemplateFile
-stf
Contiene le impostazioni da usare per questa esecuzione di Dataverse Model Builder, esegue l'override di tutti i parametri duplicati nella riga di comando. Non è possibile impostare quando si usa --writesettingstemplate.
--suppressGeneratedCodeAttribute
-sgca
Se impostato, questo elimina tutti gli oggetti generati contrassegnati con il motore di generazione del codice e la versione
Questo parametro non richiede alcun valore. È un cambio.
--suppressINotifyPattern
Se abilitata, non scrive i wrapper INotify per le proprietà e le classi.
--writesettingsTemplateFile
-wstf
Se impostato, scrive un file di impostazioni nella directory di output con le impostazioni passate correnti o le impostazioni predefinite.
Osservazioni:
Di seguito sono riportati i consigli per l'uso del pac modelbuilder build comando .
Impostare i entitynamesfilter parametri e messagenamesfilter
Attenzione
È consigliabile usare i parametri entitynamesfilter e messagenamesfilter per limitare i file generati a quelli che verranno usati nel progetto. In caso contrario, il comando di compilazione tenterà di generare codice per tutte le tabelle e i messaggi da Dataverse. Questa operazione richiederà una quantità significativa di tempo per l'elaborazione.
Le classi per i messaggi trovati nello spazio dei nomi Microsoft.Crm.Sdk.Messages e Microsoft.Xrm.Sdk.Messages non vengono generate usando questo comando. È consigliabile includere solo messaggi non trovati nel messagenamesfilter parametro , ad esempio azioni personalizzate.
Impostare suppressINotifyPattern se non si compila un'applicazione WPF
I INotify wrapper eliminati da questo comando vengono usati per gli scenari di associazione dati con applicazioni WPF. Se non si compila un'applicazione WPF con il codice generato, non sono necessari. Usare il parametro suppressINotifyPattern per eliminarli.
Includi serviceContextName durante la generazione di classi di messaggi
Se si generano classi di messaggi, è consigliabile includere sempre il parametro serviceContextName per generare un OrganizationServiceContext, anche se non lo si usa. Le classi di messaggi generate richiedono un set di proprietà in questo file. Altre informazioni sull'errore che si verifica se non si imposta questa impostazione.
Vedere anche
Gruppi di comandi dell'interfaccia della riga di comando di Microsoft Power Platform
Panoramica dell'interfaccia della riga di comando di Microsoft Power Platform