Споделяне чрез


pac modelbuilder

Генератор на кодове за API и таблици на Dataverse

Използвайте командата pac modelbuilder build , за да генерирате ранно обвързани класове на .NET за таблици на Dataverse, съобщения по избор и клас, който е извлечен от класа OrganizationServiceContext. Научете повече за използването на тази команда за генериране на ранни обвързани класове

Класът произлиза от OrganizationServiceContext:

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

За повече информация относно възможностите, които този инструмент за генериране на код позволява:

Бележка

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

Команди

Command Описание
pac modelbuilder build Изгражда модел на код за API и таблици на Dataverse

pac modelbuilder build

Изгражда модел на код за API и таблици на Dataverse

Бележка

Преди да можете да използвате командатаbuild, трябва първо да се свържете към Dataverse с помощта на командата за създаване наpac удостоверяване. Ако имате няколко връзки, използвайте опциятаpac за удостоверяване, за да изберете средата Dataverse, за която искате да генерирате код.

Пример

Следващият пример показва как да използвате командата 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
|---Набори от опции\
| |--addresstypes.cs
|---съобщения\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs

builderSettings.json съдържа параметрите, които сте задали за командата. Можете да го използвате, за да генерирате бързо файловете, когато нещата се променят. Следващият пример показва използването на генерирания buildersettings.json файл от първата команда с помощта на настройкитеTemplateFile:

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 build

--outdirectory -o

Напишете директория за файлове с обекти, съобщения и набори от опции.

Незадължителни параметри за modelbuilder build

--emitentityetc -etc

Когато е зададено, включва обекта ETC ( код на тип обект ) в генерирания код.

Този параметър не изисква стойност. Това е превключвател.

--emitfieldsclasses -efc

Генерирайте константна структура, която съдържа всички имена на полета по обект по време на генерирането на кода.

Този параметър не изисква стойност. Това е превключвател.

--emitvirtualattributes -eva

Когато е зададено, включва поддържащи атрибути на имена за справки, които разрешават филтриране по стойностите на атрибутите на основното име на атрибутите за справка.

Този параметър не изисква стойност. Това е превключвател.

--entitynamesfilter -enf

Филтрира списъка с обекти се извличат при четене на данни от Dataverse. Подаден като списък, разделен с точка и запетая. Използване на името entitylogicalname< на формуляра>;<entitylogicalname>

--entitytypesfolder -etf

Име на папка, която съдържа обекти. Името по подразбиране е "Обекти".

--environment -env

Указва целевия Dataverse. Стойността може да бъде GUID или абсолютен HTTPS URL адрес. Когато не е зададена, ще се използва активната организация, избрана за текущия профил за удостоверяване.

--generateGlobalOptionSets -go

Излъчва всички глобални набори от опции. Забележка: Ако даден обект съдържа препратка към глобален набор опции, той се излъчва дори ако този ключ не е наличен.

--generatesdkmessages -a

Когато е зададено, излъчва класовете на sdk съобщения като част от генерирането на код.

Този параметър не изисква стойност. Това е превключвател.

--language -l

Езикът, който да се използва за генерирания код на прокси сървър. Тази стойност може да бъде или "CS", или "VB". Езикът по подразбиране е "CS".

--logLevel -ll

Ниво на регистриране. Стойността по подразбиране е "Изкл.".

Използвайте една от следните стойности:

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

--messagenamesfilter -mnf

Филтрира списъка със съобщения, които се извличат при четене на данни от Dataverse. Предадени като разделен с точка и запетая списък, винаги се включват задължителните съобщения (Създаване, актуализиране, изтриване, извличане, RetrieveMultiple, Associate и Disassociate). Използвайте завършваща или водеща звездичка (*) с имената на съобщенията, за да разрешите всички съобщения, започващи със или завършващи с низ. Използване на името< на съобщението във формуляра>;<име на> съобщение.

--messagestypesfolder -mtf

Име на папка, която съдържа съобщения. Името по подразбиране е "Съобщения".

--namespace -n

Пространството от имена за генерирания код. Пространството на имената по подразбиране е глобалното пространство на имената.

--optionsetstypesfolder -otf

Име на папка, която съдържа набори от опции. Името по подразбиране е "OptionSets".

--serviceContextName -sctx

Името за генерирания контекст на услугата. Ако дадена стойност е предадена, тя се използва за контекста на услугата. Ако не е, не се генерира контекст на услуга.

--settingsTemplateFile -stf

Съдържа настройките, които трябва да се използват за това изпълнение на конструктора на модели на Dataverse, замества всички дублирани параметри в командния ред. Не може да се зададе, когато се използва --writesettingstemplate.

--suppressGeneratedCodeAttribute -sgca

Когато е зададено, това потиска всички генерирани обекти, които се маркират с машината и версията за генериране на код

Този параметър не изисква стойност. Това е превключвател.

--suppressINotifyPattern

Когато е разрешено, не записва обвивката на INotify за свойства и класове.

--writesettingsTemplateFile -wstf

Когато е зададено, записва файл с настройки в изходната директория с текущите предадени настройки или настройки по подразбиране.

Забележки

По-долу са представени препоръки за използване на командата pac modelbuilder build .

Задаване на параметри и entitynamesfiltermessagenamesfilter

Внимание

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

Класовете за съобщенията, намерени в Microsoft.Crm.Sdk.Messages и пространството на имената на Microsoft.Xrm.Sdk.Messages , не се генерират с помощта на тази команда. Трябва да включвате само съобщения, които не са намерени там в параметъра messagenamesfilter , като например действия по избор.

Задаване suppressINotifyPattern , ако не изграждате WPF приложение

Обвивката INotify , които са потиснати от тази команда, се използват за сценарии за обвързване на данни с WPF приложения. Ако не създавате WPF приложение с генерирания код, не ви трябват. Използвайте параметъра suppressINotifyPattern, за да ги потиснете.

Включване serviceContextName при генериране на класове съобщения

Ако генерирате класове съобщения, винаги трябва да включите параметъра serviceContextName , за да генерирате OrganizationServiceContext, дори и да не го използвате. Генерираните класове съобщения изискват свойство, зададено в този файл. Научете повече за грешката, която възниква, ако не зададете това.

Вижте също

CLI командни групи на Microsoft Power Platform
Общ преглед на CLI за Microsoft Power Platform