Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Генератор на кодове за API и таблици на Dataverse
Използвайте командата pac modelbuilder build , за да генерирате ранно обвързани класове на .NET за таблици на Dataverse, съобщения по избор и клас, който е извлечен от класа OrganizationServiceContext. Научете повече за използването на тази команда за генериране на ранни обвързани класове
Класът произлиза от OrganizationServiceContext:
- Поддържа състоянието на клиента, за да поддържа функции като управление на промените.
- Реализира System.Linq.IQueryable Interface и доставчик на заявки на заявка за .NET Language-Integrated (LINQ), така че да можете да пишете LINQ заявки с помощта на данни на Dataverse.
За повече информация относно възможностите, които този инструмент за генериране на код позволява:
- Късно обвързано и ранно обвързано програмиране с помощта на услугата "Организация"
- Използване на OrganizationServiceContext
- Създаване на заявки с LINQ
Бележка
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
Ниво на регистриране. Стойността по подразбиране е "Изкл.".
Използвайте една от следните стойности:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--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