Nota
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba mendaftar masuk atau menukar direktori.
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Penjana Kod untuk API dan Jadual Dataverse
Gunakan perintah binaan pac modelbuilder untuk menjana kelas .NET terikat awal untuk jadual Dataverse, mesej tersuai dan kelas yang diperoleh daripada Kelas OrganizationServiceContext. Ketahui lebih lanjut tentang menggunakan arahan ini untuk menjana kelas terikat awal
Kelas diperoleh daripada OrganizationServiceContext:
- Mengekalkan keadaan pada pelanggan untuk menyokong ciri seperti pengurusan perubahan.
- Melaksanakan Antara Muka System.Linq.IQueryable dan penyedia pertanyaan .NET Language-Integrated Query (LINQ) supaya anda boleh menulis pertanyaan LINQ menggunakan data Dataverse.
Untuk maklumat lanjut tentang keupayaan yang didayakan oleh alat penjanaan kod ini:
- Pengaturcaraan terikat lewat dan awal menggunakan perkhidmatan Organisasi
- Gunakan OrganizationServiceContext
- Bina pertanyaan dengan LINQ
Nota
Perintah menggantikan pac modelbuilder build diedarkan CrmSvcUtil.exe dengan pakej NuGet Microsoft.CrmSdk.CoreTools .
Perintah
| Perintah | Penerangan |
|---|---|
| Binaan Pembina Model PAC | Membina model kod untuk API dan Jadual Dataverse |
Binaan Pembina Model PAC
Membina model kod untuk API dan Jadual Dataverse
Nota
Sebelum anda boleh menggunakan build arahan, anda mesti menyambung ke Dataverse terlebih dahulu menggunakan arahan pac auth create . Jika anda mempunyai berbilang sambungan, gunakan pilihan pengesahan pac untuk memilih persekitaran Dataverse yang anda mahu menjana kodnya.
Contoh
Contoh berikut menunjukkan cara menggunakan build arahan dengan gesaan arahan.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
Dan arahan yang sama menggunakan PowerShell:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
Penting
Anda perlu mengelilingi sebarang parameter rentetan dengan petikan tunggal apabila menggunakan PowerShell.
Hasil arahan ini ialah fail berikut ditulis ke c:\src\MyApps\Model folder.
C:\src\MyApps\Model\
|---Entiti\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.cs
|---builderSettings.json
|---OrgContext.cs
builderSettings.json mengandungi parameter yang anda tentukan untuk arahan. Anda boleh menggunakannya untuk menjana semula fail dengan cepat apabila keadaan berubah. Contoh berikut menunjukkan menggunakan fail yang dijana buildersettings.json daripada arahan pertama menggunakan settingsTemplateFile:
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
Anda juga boleh memilih untuk membuat builderSettings.json fail dan menggunakannya dan bukannya menghantar semua parameter kepada arahan. Berikut ialah contoh yang bersamaan dengan contoh pertama di atas:
{
"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
}
Jika anda menghantar parameter kepada arahan semasa menggunakan parameter settingsTemplateFile , parameter yang dihantar kepada arahan akan mengatasi parameter yang ditetapkan dalam builderSettings.json fail.
Anda tidak boleh menggunakan parameter settingsTemplateFile dan parameter writesettingsTemplateFile pada masa yang sama.
Parameter yang Diperlukan untuk binaan modelbuilder
--outdirectory
-o
Tulis direktori untuk fail entiti, mesej dan set pilihan.
Parameter Pilihan untuk binaan modelbuilder
--emitentityetc
-etc
Apabila ditetapkan, termasuk entiti ETC (kod jenis entiti ) dalam kod yang dijana.
Parameter ini tidak memerlukan nilai. Ia adalah suis.
--emitfieldsclasses
-efc
Jana struktur pemalar yang mengandungi semua nama medan mengikut entiti pada masa penjanaan kod.
Parameter ini tidak memerlukan nilai. Ia adalah suis.
--emitvirtualattributes
-eva
Apabila ditetapkan, termasuk atribut nama sokongan untuk carian yang mendayakan penapisan pada nilai atribut nama utama atribut carian.
Parameter ini tidak memerlukan nilai. Ia adalah suis.
--entitynamesfilter
-enf
Menapis senarai entiti yang diambil apabila membaca data daripada Dataverse. Diluluskan sebagai senarai berasingan titik koma. Menggunakan borang <entitylogicalname>;<entitylogicalname>
--entitytypesfolder
-etf
Nama folder yang mengandungi entiti. Nama lalai ialah 'Entiti'.
--environment
-env
Menentukan Dataverse sasaran. Nilai mungkin URL Guid atau https mutlak. Apabila tidak ditentukan, organisasi aktif yang dipilih untuk profil pengesahan semasa akan digunakan.
--generateGlobalOptionSets
-go
Keluarkan semua Set Pilihan Global. Nota: Jika entiti mengandungi rujukan kepada set pilihan global, ia dipancarkan walaupun suis ini tidak hadir.
--generatesdkmessages
-a
Apabila ditetapkan, memancarkan kelas mesej Sdk sebagai sebahagian daripada penjanaan kod.
Parameter ini tidak memerlukan nilai. Ia adalah suis.
--language
-l
Bahasa yang akan digunakan untuk kod proksi yang dijana. Nilai ini boleh sama ada 'CS' atau 'VB'. Bahasa lalai ialah 'CS'.
--logLevel
-ll
Tahap log. Nilai lalai ialah 'Mati'.
Gunakan salah satu daripada nilai ini:
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Menapis senarai mesej yang diambil apabila membaca data daripada Dataverse. Diluluskan sebagai senarai berasingan titik koma, mesej yang diperlukan (Cipta, Kemas Kini, Padam, Ambil, RetrieveMultiple, Associate dan Disassociate) sentiasa disertakan. Gunakan tanda bintang mengekori atau mendahului (*) dengan nama mesej untuk membenarkan semua mesej bermula dengan atau berakhir dengan rentetan. Menggunakan nama< mesej borang>;<nama> mesej.
--messagestypesfolder
-mtf
Nama folder yang mengandungi mesej. Nama lalai ialah 'Mesej'.
--namespace
-n
Ruang nama untuk kod yang dijana. Ruang nama lalai ialah ruang nama global.
--optionsetstypesfolder
-otf
Nama folder yang mengandungi set pilihan. Nama lalai ialah 'OptionSets'.
--serviceContextName
-sctx
Nama untuk konteks perkhidmatan yang dijana. Jika nilai disampaikan, ia digunakan untuk Konteks Perkhidmatan. Jika tidak, tiada Konteks Perkhidmatan dijana.
--settingsTemplateFile
-stf
Mengandungi Tetapan untuk digunakan untuk larian Dataverse Model Builder ini, mengatasi sebarang parameter pendua pada baris arahan. Tidak boleh ditetapkan apabila --writesettingstemplate digunakan.
--suppressGeneratedCodeAttribute
-sgca
Apabila ditetapkan, ini menyekat semua objek yang dijana yang ditandakan dengan enjin dan versi penjanaan kod
Parameter ini tidak memerlukan nilai. Ia adalah suis.
--suppressINotifyPattern
Apabila didayakan, tidak menulis pembungkus INotify untuk sifat dan kelas.
--writesettingsTemplateFile
-wstf
Apabila ditetapkan, menulis fail tetapan ke direktori output dengan tetapan lulus semasa atau tetapan lalai.
Ucapan
Berikut ialah cadangan untuk menggunakan pac modelbuilder build arahan.
Tetapkan parameter entitynamesfilter dan messagenamesfilter
Awas
Kami amat mengesyorkan agar anda menggunakan parameter entitynamesfilter dan messagenamesfilter untuk mengehadkan fail yang dijana kepada fail yang akan anda gunakan dalam projek anda. Jika tidak, arahan binaan akan cuba menjana kod untuk semua jadual dan mesej daripada Dataverse. Ini akan mengambil banyak masa untuk diproses.
Kelas untuk mesej yang terdapat dalam ruang nama Microsoft.Crm.Sdk.Messages dan Microsoft.Xrm.Sdk.Messages tidak dijana menggunakan arahan ini. Anda hanya perlu memasukkan mesej yang tidak ditemui di sana dalam messagenamesfilter parameter, seperti tindakan tersuai.
Tetapkan suppressINotifyPattern jika anda tidak membina aplikasi WPF
Pembungkus INotify yang ditindas oleh arahan ini digunakan untuk senario pengikatan data dengan aplikasi WPF. Jika anda tidak membina aplikasi WPF dengan kod yang dijana, anda tidak memerlukannya. Gunakan parameter suppressINotifyPattern untuk menindasnya.
Sertakan serviceContextName apabila menjana kelas mesej
Jika anda menjana kelas mesej, anda harus sentiasa menyertakan parameter serviceContextName untuk menjana OrganizationServiceContext, walaupun anda tidak menggunakannya. Kelas mesej yang dijana memerlukan set sifat dalam fail ini. Ketahui lebih lanjut tentang ralat yang berlaku jika anda tidak menetapkan ini.
Lihat juga
Kumpulan Perintah CLI Microsoft Power Platform
Gambaran keseluruhan CLI Microsoft Power Platform