Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Gerador de código para APIs e tabelas do Dataverse
Use o comando pac modelbuilder build para gerar classes .NET associadas antecipadamente para tabelas do Dataverse, mensagens personalizadas e uma classe derivada da Classe OrganizationServiceContext. Saiba mais sobre como usar esse comando para gerar classes associadas antecipadamente
A classe derivada de OrganizationServiceContext:
- Mantém o estado no cliente para dar suporte a recursos como gerenciamento de alterações.
- Implementa a Interface System.Linq.IQueryable e um provedor de consultas LINQ (Consulta Language-Integrated do .NET) para que você possa escrever consultas LINQ usando dados do Dataverse.
Para obter mais informações sobre os recursos que essa ferramenta de geração de código habilita:
- Programação com associação tardia e com limite inicial usando o serviço Organização
- Usar OrganizationServiceContext
- Criar consultas com LINQ
Observação
O pac modelbuilder build comando substitui o CrmSvcUtil.exe distribuído pelo pacote NuGet Microsoft.CrmSdk.CoreTools .
Commands
| Command | Description |
|---|---|
| pac modelbuilder build | Cria um modelo de código para APIs e tabelas do Dataverse |
pac modelbuilder build
Cria um modelo de código para APIs e tabelas do Dataverse
Observação
Antes de usar o build comando, primeiro você deve se conectar ao Dataverse usando o comando pac auth create . Se você tiver várias conexões, use a seleção de autenticação pac para escolher o ambiente do 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 todos os 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
|---Messages\
| |--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 do primeiro comando usando as configuraçõesTemplateFile:
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. Veja a seguir 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 ao usar o parâmetro settingsTemplateFile , os parâmetros passados para o comando substituirão os definidos no builderSettings.json arquivo.
Você não pode usar o parâmetro settingsTemplateFile e o parâmetro writeettingsTemplateFile ao mesmo tempo.
Parâmetros necessários para o build do modelbuilder
--outdirectory
-o
Escreva o diretório para arquivos de entidade, mensagem e conjunto de opções.
Parâmetros opcionais para build de modelbuilder
--emitentityetc
-etc
Quando definido, inclui a entidade ETC ( código de tipo de entidade) no código gerado.
Esse parâmetro não requer nenhum valor. É um comutador.
--emitfieldsclasses
-efc
Gere uma estrutura de constantes que contenha todos os nomes de campo por entidade no momento da geração de código.
Esse parâmetro não requer nenhum valor. É um comutador.
--emitvirtualattributes
-eva
Quando definido, inclui atributos de nome de suporte para pesquisas que permitem a filtragem nos valores de atributo de nome primário dos atributos de pesquisa.
Esse parâmetro não requer nenhum valor. É um comutador.
--entitynamesfilter
-enf
Filtra a lista de entidades que são recuperadas ao ler dados do Dataverse. Fornecido como uma lista separada por ponto-e-vírgula. Usando o nome entitylogicalme< do formulário>;<entitylogicalname>
--entitytypesfolder
-etf
Nome da pasta que contém entidades. O nome padrão é 'Entidades'.
--environment
-env
Especifica o Dataverse de destino. O valor pode ser um Guid ou uma URL https absoluta. Quando não for especificado, a organização ativa selecionada para o perfil de autenticação atual será usada.
--generateGlobalOptionSets
-go
Emita todos os OptionSets Globais. Observação: se uma entidade contiver uma referência a um conjunto de opções global, ela será emitida mesmo se essa opção não estiver presente.
--generatesdkmessages
-a
Quando definido, emite classes de mensagem do Sdk como parte da geração de código.
Esse parâmetro não requer nenhum valor. É um comutador.
--language
-l
O idioma a ser usado 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 é "Desativado".
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, RecuperarMultipla, 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 sejam iniciadas ou terminadas com uma cadeia de caracteres. Usando o nome da< mensagem do formulário>;<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 do Serviço. Caso contrário, nenhum Contexto de Serviço será gerado.
--settingsTemplateFile
-stf
Contém configurações a serem usadas para essa execução do Construtor de Modelos do Dataverse, substitui todos os 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
Esse parâmetro não requer nenhum valor. É um comutador.
--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 atuais passadas ou as configurações padrão.
Observações
Veja a seguir as recomendações para usar o pac modelbuilder build comando.
Definir os entitynamesfilter parâmetros e messagenamesfilter
Cuidado
É 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 de build tentará gerar código para todas as tabelas e mensagens do Dataverse. Isso levará muito tempo para ser processado.
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ê deve incluir apenas mensagens não encontradas no messagenamesfilter parâmetro, como ações personalizadas.
Definir suppressINotifyPattern se você não estiver criando um aplicativo WPF
Os INotify wrappers suprimidos por esse 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 parâmetro suppressINotifyPattern para suprimi-los.
Incluir serviceContextName ao gerar classes de mensagem
Se você estiver gerando classes de mensagens, sempre deverá incluir o parâmetro serviceContextName para gerar um OrganizationServiceContext, mesmo que não esteja usando-o. As classes de mensagem geradas exigem um conjunto de propriedades 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