Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Генератор кода для API и таблиц dataverse
Используйте команду сборки pac modelbuilder для создания классов .NET с ранней привязкой для таблиц Dataverse, пользовательских сообщений и класса, производных от класса OrganizationServiceContext. Дополнительные сведения об использовании этой команды для создания ранних привязанных классов
Класс, производный от OrganizationServiceContext:
- Поддерживает состояние клиента для поддержки таких функций, как управление изменениями.
- Реализует интерфейс System.Linq.IQueryable и поставщик запросов .NET Language-Integrated (LINQ), чтобы можно было создавать запросы LINQ с помощью данных Dataverse.
Дополнительные сведения о возможностях, которые включает это средство создания кода:
- Программирование с поздними привязками и ранними привязками с помощью службы организации
- Использование OrganizationServiceContext
- Создание запросов с помощью LINQ
Замечание
Команда 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.
Используйте одно из следующих значений:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--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