Поделиться через


pac modelbuilder

Генератор кода для API и таблиц dataverse

Используйте команду сборки pac modelbuilder для создания классов .NET с ранней привязкой для таблиц Dataverse, пользовательских сообщений и класса, производных от класса OrganizationServiceContext. Дополнительные сведения об использовании этой команды для создания ранних привязанных классов

Класс, производный от OrganizationServiceContext:

  • Поддерживает состояние клиента для поддержки таких функций, как управление изменениями.
  • Реализует интерфейс System.Linq.IQueryable и поставщик запросов .NET Language-Integrated (LINQ), чтобы можно было создавать запросы LINQ с помощью данных Dataverse.

Дополнительные сведения о возможностях, которые включает это средство создания кода:

Замечание

Команда pac modelbuilder build заменяет распределенный CrmSvcUtil.exe пакет NuGet Microsoft.CrmSdk.CoreTools .

Commands

Command Description
сборка pac modelbuilder Создает модель кода для API и таблиц Dataverse

сборка pac modelbuilder

Создает модель кода для API и таблиц Dataverse

Замечание

Прежде чем использовать build команду, необходимо сначала подключиться к Dataverse с помощью команды создания проверки подлинности pac . Если у вас несколько подключений, используйте проверку подлинности pac , чтобы выбрать среду Dataverse, для которой нужно создать код.

Example

В следующем примере показано, как использовать build команду с командной строкой.

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

И та же команда с помощью PowerShell:

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

Это важно

При использовании PowerShell необходимо окружить любые строковые параметры одними кавычками.

Результатом этой команды является то, что следующие файлы записываются в папку c:\src\MyApps\Model .

C:\src\MyApps\Model\
|---Объекты\
| |--account.cs | |--contact.cs

|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.csbuilderSettings.json
|--- OrgContext.cs
|---

builderSettings.json содержит параметры, указанные для команды. Его можно использовать для быстрого повторного создания файлов при изменении. В следующем примере показано использование созданного buildersettings.json файла из первой команды с помощью settingsTemplateFile:

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

Вы также можете создать builderSettings.json файл и использовать его вместо передачи всех параметров команде. Ниже приведен пример, эквивалентный первому приведенному выше примеру:

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

При передаче параметров команде при использовании параметра settingsTemplateFile параметры, переданные команде, переопределяют эти параметры в builderSettings.json файле.

Параметр settingsTemplateFile и параметр writesettingsTemplateFile нельзя использовать одновременно.

Обязательные параметры для сборки modelbuilder

--outdirectory -o

Запись каталога для файлов сущности, сообщения и набора параметров.

Необязательные параметры сборки modelbuilder

--emitentityetc -etc

При установке включает сущность ETC (код типа сущности) в созданный код.

Этот параметр не требует значения. Это переключатель.

--emitfieldsclasses -efc

Создайте структуру констант, содержащую все имена полей по сущности во время создания кода.

Этот параметр не требует значения. Это переключатель.

--emitvirtualattributes -eva

При установке включает вспомогательные атрибуты имени для подстановок, которые позволяют фильтровать значения атрибутов первичного имени атрибутов подстановки.

Этот параметр не требует значения. Это переключатель.

--entitynamesfilter -enf

Фильтрует список сущностей при чтении данных из Dataverse. Передается в виде списка, разделенного точкой с запятой. Использование сущностного имени< формы>;<entitylogicalname>

--entitytypesfolder -etf

Имя папки, содержащей сущности. Имя по умолчанию — "Сущности".

--environment -env

Указывает целевой объект Dataverse. Это значение может быть URL-адресом GUID или абсолютным URL-адресом HTTPS. Если это не указано, будет использоваться активная организация, выбранная для текущего профиля проверки подлинности.

--generateGlobalOptionSets -go

Выпустим все глобальные наборы параметров. Примечание. Если сущность содержит ссылку на глобальный набор параметров, он создается даже в том случае, если этот параметр отсутствует.

--generatesdkmessages -a

Если задано, классы сообщений Sdk выдаются в рамках создания кода.

Этот параметр не требует значения. Это переключатель.

--language -l

Язык, используемый для созданного прокси-кода. Это значение может быть либо CS, либо "VB". Язык по умолчанию — CS.

--logLevel -ll

Уровень журнала. Значение по умолчанию — Off.

Используйте одно из следующих значений:

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

--messagenamesfilter -mnf

Фильтрует список сообщений, извлекаемых при чтении данных из Dataverse. Передаваемые в виде разделенного с запятой списка, обязательные сообщения (создание, обновление, удаление, извлечение, извлечение, связывание и отсоединение) всегда включаются. Используйте конечную или ведущую звездочку (*) с именами сообщений, чтобы разрешить все сообщения, начиная с или заканчивая строкой. Использование имени< сообщения формы>;<messagename>.

--messagestypesfolder -mtf

Имя папки, содержащей сообщения. Имя по умолчанию — "Сообщения".

--namespace -n

Пространство имен для созданного кода. Пространство имен по умолчанию — это глобальное пространство имен.

--optionsetstypesfolder -otf

Имя папки, содержащей наборы параметров. Имя по умолчанию — OptionSets.

--serviceContextName -sctx

Имя созданного контекста службы. Если значение передается, оно используется для контекста службы. Если нет, контекст службы не создается.

--settingsTemplateFile -stf

Содержит параметры, используемые для этого запуска построителя моделей Dataverse, переопределяет все повторяющиеся параметры в командной строке. Невозможно задать, если используется --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Если задано, это подавляет все созданные объекты, помеченные подсистемой создания кода и версией

Этот параметр не требует значения. Это переключатель.

--suppressINotifyPattern

При включении не записывает оболочки INotify для свойств и классов.

--writesettingsTemplateFile -wstf

При установке записывает файл параметров в выходной каталог с текущими переданными параметрами или параметрами по умолчанию.

Замечания

Ниже приведены рекомендации по использованию pac modelbuilder build команды.

entitynamesfilter Настройка и messagenamesfilter параметры

Caution

Настоятельно рекомендуется использовать параметры entitynamesfilter и messagenamesfilter, чтобы ограничить созданные файлы теми, которые будут использоваться в проекте. В противном случае команда сборки попытается создать код для всех таблиц и сообщений из Dataverse. Это займет значительное время для обработки.

Классы сообщений, найденных в пространстве имен Microsoft.Crm.Sdk.Messages и Microsoft.Xrm.Sdk.Messages , не создаются с помощью этой команды. В параметр следует включать только сообщения, не найденные в параметре, например пользовательские messagenamesfilter действия.

Установка suppressINotifyPattern , если вы не создаете приложение WPF

Оболочки INotify , подавляемые этой командой, используются для сценариев привязки данных с приложениями WPF. Если вы не создаете приложение WPF с созданным кодом, их не нужно. Используйте параметр suppressINotifyPattern для их подавления .

Включить serviceContextName при создании классов сообщений

Если вы создаете классы сообщений, всегда следует включить параметр serviceContextName для создания OrganizationServiceContext, даже если вы не используете его. Для созданных классов сообщений требуется набор свойств в этом файле. Дополнительные сведения об ошибке, которая возникает, если вы этого не задали.

См. также

Группы команд Командной строки Microsoft Power Platform
Обзор интерфейса командной строки Microsoft Power Platform