Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Gerador de código para APIs e tabelas do Dataverse
Use o comando pac modelbuilder build para gerar classes .NET vinculadas antecipadamente para tabelas Dataverse, mensagens personalizadas e uma classe derivada da classe OrganizationServiceContext. Saiba mais sobre como usar este comando para gerar classes vinculadas antecipadas
A classe deriva de OrganizationServiceContext:
- Mantém o estado no cliente para oferecer suporte a recursos como gerenciamento de alterações.
- Implementa a interface System.Linq.IQueryable e um provedor de consulta .NET Language-Integrated Query (LINQ) para que você possa escrever consultas LINQ usando dados Dataverse.
Para obter mais informações sobre os recursos que essa ferramenta de geração de código permite:
- Programação de ligação tardia e antecipada usando o serviço Organização
- Usar OrganizationServiceContext
- Crie consultas com o LINQ
Observação
O pac modelbuilder build comando substitui o distribuído CrmSvcUtil.exe pelo pacote NuGet Microsoft.CrmSdk.CoreTools .
Commands
| Command | Description |
|---|---|
| construção do pac modelbuilder | Cria um modelo de código para APIs e tabelas do Dataverse |
construção do pac modelbuilder
Cria um modelo de código para APIs e tabelas do Dataverse
Observação
Antes de usar o build comando, você deve primeiro se conectar ao Dataverse usando o comando pac auth create . Se você tiver várias conexões, use a seleção pac auth para escolher o ambiente Dataverse para o qual deseja gerar código.
Example
O exemplo a seguir mostra como usar o build comando com um prompt de comando.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
E o mesmo comando usando o PowerShell:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Importante
Você precisa cercar quaisquer parâmetros de cadeia de caracteres com aspas simples ao usar o PowerShell.
O resultado desse comando é que os seguintes arquivos são gravados na c:\src\MyApps\Model pasta.
C:\src\MyApps\Model\
|---Entidades\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Mensagens\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs
builderSettings.json contém os parâmetros especificados para o comando. Você pode usá-lo para regenerar rapidamente os arquivos à medida que as coisas mudam. O exemplo a seguir mostra o uso do arquivo gerado buildersettings.json a partir do primeiro comando usando o settingsTemplateFile:
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
Você também pode optar por criar um builderSettings.json arquivo e usá-lo em vez de passar todos os parâmetros para o comando. Segue-se um exemplo equivalente ao primeiro exemplo acima:
{
"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 você passar parâmetros para o comando enquanto estiver usando o parâmetro settingsTemplateFile , os parâmetros passados para o comando substituirão os definidos no builderSettings.json arquivo.
Não é possível usar o parâmetro settingsTemplateFile e o parâmetro writesettingsTemplateFile ao mesmo tempo.
Parâmetros necessários para a compilação do modelbuilder
--outdirectory
-o
Escreva o diretório para arquivos de entidade, mensagem e conjunto de opções.
Parâmetros opcionais para a compilação do modelbuilder
--emitentityetc
-etc
Quando definido, inclui a entidade ETC (código de tipo de entidade) no código gerado.
Este parâmetro não requer valor. É uma mudança.
--emitfieldsclasses
-efc
Gere uma estrutura de constantes que contenha todos os nomes de campo por entidade no momento da geração de código.
Este parâmetro não requer valor. É uma mudança.
--emitvirtualattributes
-eva
Quando definido, inclui atributos de nome de suporte para pesquisas que permitem a filtragem nos valores de atributos de nome primários de atributos de pesquisa.
Este parâmetro não requer valor. É uma mudança.
--entitynamesfilter
-enf
Filtra a lista de entidades que são recuperadas ao ler dados do Dataverse. Transmitido como uma lista separada por ponto e vírgula. Usando o formulário <entitylogicalname>;<EntityLogicalName>
--entitytypesfolder
-etf
Nome da pasta que contém entidades. O nome padrão é 'Entidades'.
--environment
-env
Especifica o Dataverso de destino. O valor pode ser um URL Guid ou https absoluto. Quando não especificado, a organização ativa selecionada para o perfil de autenticação atual será usada.
--generateGlobalOptionSets
-go
Emita todos os Conjuntos de Opções Globais. Nota: Se uma entidade contiver uma referência a um conjunto de opções global, ela será emitida mesmo que essa opção não esteja presente.
--generatesdkmessages
-a
Quando definido, emite classes de mensagem Sdk como parte da geração de código.
Este parâmetro não requer valor. É uma mudança.
--language
-l
A linguagem a ser usada para o código proxy gerado. Esse valor pode ser 'CS' ou 'VB'. O idioma padrão é 'CS'.
--logLevel
-ll
Nível de log. O valor padrão é 'Off'.
Use um destes valores:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Filtra a lista de mensagens que são recuperadas ao ler dados do Dataverse. Passadas como uma lista separada por ponto-e-vírgula, as mensagens necessárias (Criar, Atualizar, Excluir, Recuperar, Recuperar, Associar e Desassociar) são sempre incluídas. Use um asterisco à direita ou à esquerda (*) com os nomes das mensagens para permitir que todas as mensagens comecem ou terminem com uma cadeia de caracteres. Usando o formulário <messagename>;<nome da> mensagem.
--messagestypesfolder
-mtf
Nome da pasta que contém mensagens. O nome padrão é 'Mensagens'.
--namespace
-n
O namespace para o código gerado. O namespace padrão é o namespace global.
--optionsetstypesfolder
-otf
Nome da pasta que contém conjuntos de opções. O nome padrão é 'OptionSets'.
--serviceContextName
-sctx
O nome do contexto de serviço gerado. Se um valor for passado, ele será usado para o Contexto de Serviço. Caso contrário, nenhum contexto de serviço será gerado.
--settingsTemplateFile
-stf
Contém Configurações a serem usadas para esta execução do Dataverse Model Builder, substitui quaisquer parâmetros duplicados na linha de comando. Não é possível definir quando --writesettingstemplate é usado.
--suppressGeneratedCodeAttribute
-sgca
Quando definido, isso suprime todos os objetos gerados que estão sendo marcados com o mecanismo de geração de código e a versão
Este parâmetro não requer valor. É uma mudança.
--suppressINotifyPattern
Quando habilitado, não grava os wrappers INotify para propriedades e classes.
--writesettingsTemplateFile
-wstf
Quando definido, grava um arquivo de configurações no diretório de saída com as configurações passadas atuais ou as configurações padrão.
Observações
A seguir estão as recomendações para usar o pac modelbuilder build comando.
Definir os entitynamesfilter parâmetros e messagenamesfilter
Atenção
É altamente recomendável que você use os parâmetros entitynamesfilter e messagenamesfilter para limitar os arquivos gerados àqueles que você usará em seu projeto. Caso contrário, o comando build tentará gerar código para todas as tabelas e mensagens do Dataverse. Isso levará uma quantidade significativa de tempo para processar.
As classes para as mensagens encontradas no namespace Microsoft.Crm.Sdk.Messages e Microsoft.Xrm.Sdk.Messages não são geradas usando esse comando. Você só deve incluir mensagens não encontradas lá no messagenamesfilter parâmetro, como ações personalizadas.
Definir suppressINotifyPattern se você não estiver criando um aplicativo WPF
Os INotify wrappers que são suprimidos por este comando são usados para cenários de vinculação de dados com aplicativos WPF. Se você não estiver criando um aplicativo WPF com o código gerado, não precisará deles. Use o suppressINotifyPattern parâmetro para suprimi-los.
Incluir serviceContextName ao gerar classes de mensagem
Se você estiver gerando classes de mensagem, deverá sempre incluir o parâmetro serviceContextName para gerar um OrganizationServiceContext, mesmo que não o esteja usando. As classes de mensagem geradas requerem uma propriedade definida neste arquivo. Saiba mais sobre o erro que ocorre se você não definir isso.
Consulte também
Grupos de comandos da CLI do Microsoft Power Platform
Visão geral da CLI do Microsoft Power Platform