Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Generator kodu dla interfejsów API i tabel usługi Dataverse
Użyj pac modelbuilder build polecenia, aby wygenerować wczesne powiązane klasy .NET dla tabel Dataverse, niestandardowych komunikatów i klasy pochodzącej z klasy OrganizationServiceContext. Dowiedz się więcej na temat używania tego polecenia do generowania klas wczesnej granicy
Klasa pochodząca z OrganizationServiceContextklasy :
- Utrzymuje stan na kliencie, aby obsługiwać funkcje, takie jak zarządzanie zmianami.
- Implementuje interfejs System.Linq.IQueryable i dostawcę zapytań platformy .NET Language-Integrated Query (LINQ), aby można było pisać zapytania LINQ przy użyciu danych usługi Dataverse.
Aby uzyskać więcej informacji na temat możliwości, które umożliwia to narzędzie generowania kodu:
- Programowanie związane z późnym i wczesnym ograniczeniem przy użyciu usługi organizacji
- Korzystanie z elementu OrganizationServiceContext
- Kompilowanie zapytań za pomocą LINQ
Uwaga / Notatka
Polecenie pac modelbuilder build zastępuje CrmSvcUtil.exe dystrybuowany pakiet NuGet Microsoft.CrmSdk.CoreTools .
Commands
| Command | Description |
|---|---|
| pac modelbuilder build | Tworzy model kodu dla interfejsów API i tabel usługi Dataverse |
pac modelbuilder build
Tworzy model kodu dla interfejsów API i tabel usługi Dataverse
Uwaga / Notatka
Aby można było użyć build polecenia , należy najpierw nawiązać połączenie z usługą Dataverse przy użyciu polecenia pac auth create . Jeśli masz wiele połączeń, użyj opcji uwierzytelniania pac , aby wybrać środowisko Dataverse, dla którego chcesz wygenerować kod.
Example
W poniższym przykładzie pokazano, jak używać build polecenia z wierszem polecenia.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
I to samo polecenie przy użyciu programu PowerShell:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Ważne
Podczas korzystania z programu PowerShell należy otoczyć wszystkie parametry ciągu pojedynczymi cudzysłowami.
Wynikiem tego polecenia jest to, że następujące pliki są zapisywane w folderze c:\src\MyApps\Model .
C:\src\MyApps\Model\
|---Podmioty\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.csbuilderSettings.json
|--- OrgContext.cs
|---
builderSettings.json zawiera parametry określone dla polecenia. Można go użyć do szybkiego ponownego wygenerowania plików w miarę zmiany. W poniższym przykładzie pokazano użycie wygenerowanego buildersettings.json pliku z pierwszego polecenia przy użyciu ustawieniaTemplateFile:
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
Możesz również utworzyć builderSettings.json plik i użyć go zamiast przekazywania wszystkich parametrów do polecenia. Poniżej przedstawiono przykład, który jest odpowiednikiem pierwszego przykładu powyżej:
{
"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
}
Jeśli przekażesz parametry do polecenia podczas korzystania z parametru settingsTemplateFile , parametry przekazane do polecenia zastąpią te ustawione w builderSettings.json pliku.
Nie można użyć parametru settingsTemplateFile i parametru writesettingsTemplateFile w tym samym czasie.
Wymagane parametry dla kompilacji programu ModelBuilder
--outdirectory
-o
Napisz katalog dla plików jednostek, komunikatów i zestawów opcji.
Opcjonalne parametry kompilacji programu ModelBuilder
--emitentityetc
-etc
Po ustawieniu uwzględnij jednostkę ETC ( kod typu jednostki ) w wygenerowany kod.
Ten parametr nie wymaga żadnej wartości. Jest to przełącznik.
--emitfieldsclasses
-efc
Wygeneruj strukturę stałych zawierającą wszystkie nazwy pól według jednostki w momencie generowania kodu.
Ten parametr nie wymaga żadnej wartości. Jest to przełącznik.
--emitvirtualattributes
-eva
Po ustawieniu zawiera atrybuty nazwy pomocniczej dla odnośników, które umożliwiają filtrowanie wartości atrybutów atrybutów nazwy podstawowej atrybutów odnośnika.
Ten parametr nie wymaga żadnej wartości. Jest to przełącznik.
--entitynamesfilter
-enf
Filtruje listę jednostek pobieranych podczas odczytywania danych z usługi Dataverse. Przekazywana jako lista rozdzielona średnikami. Przy użyciu jednostki logicznej< formularza>;<entitylogicalname>
--entitytypesfolder
-etf
Nazwa folderu, który zawiera jednostki. Domyślna nazwa to "Jednostki".
--environment
-env
Określa docelowy element Dataverse. Wartość może być identyfikatorem GUID lub bezwzględnym adresem URL https. Jeśli nie zostanie określony, zostanie użyta aktywna organizacja wybrana dla bieżącego profilu uwierzytelniania.
--generateGlobalOptionSets
-go
Emituj wszystkie globalne zestawy opcji. Uwaga: jeśli jednostka zawiera odwołanie do globalnego zestawu opcji, jest emitowany nawet wtedy, gdy ten przełącznik nie jest obecny.
--generatesdkmessages
-a
Po ustawieniu program emituje klasy komunikatów zestawu SDK w ramach generowania kodu.
Ten parametr nie wymaga żadnej wartości. Jest to przełącznik.
--language
-l
Język używany dla wygenerowanego kodu serwera proxy. Może to być wartość "CS" lub "VB". Domyślnym językiem jest "CS".
--logLevel
-ll
Poziom dziennika. Wartość domyślna to "Wyłączone".
Użyj jednej z następujących wartości:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Filtruje listę komunikatów, które są pobierane podczas odczytywania danych z usługi Dataverse. Przekazywane jako rozdzielana średnikami lista, wymagane komunikaty (Create, Update, Delete, Retrieve, RetrieveMultiple, Associate i Disassociate) są zawsze uwzględniane. Użyj końcowej lub wiodącej gwiazdki (*) z nazwami komunikatów, aby zezwolić na wszystkie komunikaty rozpoczynające się od ciągu lub kończące się ciągiem. Przy użyciu nazwy komunikatu< formularza>;<messagename>.
--messagestypesfolder
-mtf
Nazwa folderu, który zawiera komunikaty. Domyślna nazwa to "Komunikaty".
--namespace
-n
Przestrzeń nazw wygenerowanego kodu. Domyślna przestrzeń nazw to globalna przestrzeń nazw.
--optionsetstypesfolder
-otf
Nazwa folderu, który zawiera zestawy opcji. Domyślna nazwa to "OptionSets".
--serviceContextName
-sctx
Nazwa wygenerowanego kontekstu usługi. Jeśli wartość zostanie przekazana, zostanie użyta dla kontekstu usługi. Jeśli nie, nie jest generowany żaden kontekst usługi.
--settingsTemplateFile
-stf
Zawiera ustawienia, które mają być używane w tym uruchomieniu narzędzia Dataverse Model Builder, zastępuje wszystkie zduplikowane parametry w wierszu polecenia. Nie można ustawić, gdy jest używany parametr --writesettingstemplate.
--suppressGeneratedCodeAttribute
-sgca
Po ustawieniu spowoduje to pominięcie wszystkich wygenerowanych obiektów oznaczonych aparatem generowania kodu i wersją
Ten parametr nie wymaga żadnej wartości. Jest to przełącznik.
--suppressINotifyPattern
Po włączeniu nie zapisuje otoek INotify dla właściwości i klas.
--writesettingsTemplateFile
-wstf
Po ustawieniu zapisuje plik ustawień w katalogu wyjściowym z bieżącymi przekazanymi ustawieniami lub ustawieniami domyślnymi.
Uwagi
Poniżej przedstawiono zalecenia dotyczące używania pac modelbuilder build polecenia .
Ustawianie parametrów entitynamesfilter i messagenamesfilter
Ostrzeżenie
Zdecydowanie zalecamy użycie parametrów entitynamesfilter i messagenamesfilter w celu ograniczenia wygenerowanych plików do tych, które będą używane w projekcie. W przeciwnym razie polecenie kompilacji podejmie próbę wygenerowania kodu dla wszystkich tabel i komunikatów z usługi Dataverse. Przetworzenie tego procesu zajmie dużo czasu.
Klasy komunikatów znalezionych w przestrzeni nazw Microsoft.Crm.Sdk.Messages i Microsoft.Xrm.Sdk.Messages nie są generowane przy użyciu tego polecenia. W parametrze messagenamesfilter powinny znajdować się tylko komunikaty, których nie można znaleźć, na przykład akcje niestandardowe.
Ustaw suppressINotifyPattern , jeśli nie tworzysz aplikacji WPF
Otoki INotify pomijane przez to polecenie są używane w scenariuszach łączenia danych z aplikacjami WPF. Jeśli nie tworzysz aplikacji WPF przy użyciu wygenerowanego kodu, nie potrzebujesz ich. Użyj parametru suppressINotifyPattern , aby je pominąć.
Uwzględnij serviceContextName podczas generowania klas komunikatów
Jeśli generujesz klasy komunikatów, zawsze należy uwzględnić parametr serviceContextName , aby wygenerować OrganizationServiceContextparametr , nawet jeśli nie jest używany. Wygenerowane klasy komunikatów wymagają właściwości ustawionej w tym pliku. Dowiedz się więcej o błędzie, który występuje, jeśli tego nie ustawisz.
Zobacz także
Grupy poleceń interfejsu wiersza polecenia platformy Microsoft Power Platform
Omówienie interfejsu wiersza polecenia platformy Microsoft Power Platform