Aracılığıyla paylaş


pac modelbuilder

Dataverse API'leri ve Tabloları için Kod Oluşturucu

Dataverse tabloları, özel iletiler ve OrganizationServiceContext Sınıfından türetilen bir sınıf için erken bağlanan .NET sınıfları oluşturmak için pac modelbuilder derleme komutunu kullanın. Erken bağlanan sınıflar oluşturmak için bu komutu kullanma hakkında daha fazla bilgi edinin

sınıfından OrganizationServiceContexttüretilmiştir:

  • Değişiklik yönetimi gibi özellikleri desteklemek için istemcide durumu korur.
  • Dataverse verilerini kullanarak LINQ sorguları yazabilmeniz için System.Linq.IQueryable Arabirimini ve .NET Language-Integrated Sorgusu (LINQ) sorgu sağlayıcısını uygular.

Bu kod oluşturma aracının sağladığı özellikler hakkında daha fazla bilgi için:

Uyarı

pac modelbuilder build komutu, dağıtılmış öğesini CrmSvcUtil.exeMicrosoft.CrmSdk.CoreTools NuGet paketiyle değiştirir.

Commands

Command Description
pac modelbuilder derlemesi Dataverse API'leri ve Tabloları için kod modeli oluşturur

pac modelbuilder derlemesi

Dataverse API'leri ve Tabloları için kod modeli oluşturur

Uyarı

Komutu kullanabilmeniz build için önce pac auth create komutunu kullanarak Dataverse'e bağlanmanız gerekir. Birden çok bağlantınız varsa, kod oluşturmak istediğiniz Dataverse ortamını seçmek için pac kimlik doğrulaması seçmeyi kullanın.

Example

Aşağıdaki örnekte komutun build komut istemiyle nasıl kullanılacağı gösterilmektedir.

pac modelbuilder build ^
  --entitynamesfilter account;contact ^
  --generatesdkmessages ^
  --messagenamesfilter examp_* ^
  --emitfieldsclasses ^
  --emitVirtualAttributes ^
  --namespace MyApps.Model ^
  --outdirectory c:\src\MyApps\Model ^
  --writesettingsTemplateFile ^
  --serviceContextName OrgContext

PowerShell kullanarak da aynı komutu kullanın:

pac modelbuilder build `
  --entitynamesfilter 'account;contact' `
  --generatesdkmessages `
  --messagenamesfilter 'examp_*' `
  --emitfieldsclasses `
  --emitVirtualAttributes `
  --namespace 'MyApps.Model' `
  --outdirectory 'c:\src\MyApps\Model' `
  --writesettingsTemplateFile `
  --serviceContextName 'OrgContext'

Önemli

PowerShell kullanırken dize parametrelerini tek tırnak içine almanız gerekir.

Bu komutun sonucu, aşağıdaki dosyaların klasöre yazıldığından c:\src\MyApps\Model kaynaklanır.

C:\src\MyApps\Model\
|---Varlık\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---messages\
| |--examp_myapi.cs
|---EntityOptionSetEnum.csbuilderSettings.json
|--- OrgContext.cs
|---

builderSettings.json , komut için belirttiğiniz parametreleri içerir. İşlemler değiştikçe dosyaları hızla yeniden oluşturmak için kullanabilirsiniz. Aşağıdaki örnekte buildersettings.json kullanılarak ilk komuttan oluşturulan dosyanın kullanılması gösterilmektedir:

pac modelbuilder build `
  --outdirectory c:\src\MyApps\Model `
  --settingsTemplateFile c:\src\MyApps\Model\builderSettings.json

Ayrıca, tüm parametreleri komutuna geçirmek yerine bir builderSettings.json dosya oluşturmayı ve bunu kullanmayı da seçebilirsiniz. Aşağıda, yukarıdaki ilk örnekle eşdeğer olan bir örnek verilmiştir:

{
  "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 parametresini kullanırken komutuna parametre geçirirseniz, komuta geçirilen parametreler dosyada builderSettings.json ayarlananları geçersiz kılar.

settingsTemplateFile parametresini ve writesettingsTemplateFile parametresini aynı anda kullanamazsınız.

Model oluşturucu derlemesi için gerekli Parametreler

--outdirectory -o

Varlık, ileti ve seçenek kümesi dosyaları için dizin yazma.

Model oluşturucu derlemesi için isteğe bağlı Parametreler

--emitentityetc -etc

Ayarlandığında, oluşturulan koda ETC ( varlık türü kodu ) varlığını ekler.

Bu parametre için değer gerekmez. Bu bir anahtar.

--emitfieldsclasses -efc

Kod oluşturma sırasında varlığa göre tüm alan adlarını içeren bir sabitler yapısı oluşturun.

Bu parametre için değer gerekmez. Bu bir anahtar.

--emitvirtualattributes -eva

Ayarlandığında, arama özniteliklerinin birincil ad öznitelik değerlerinde filtrelemeyi etkinleştiren aramalar için destekleyici ad öznitelikleri içerir.

Bu parametre için değer gerekmez. Bu bir anahtar.

--entitynamesfilter -enf

Dataverse'den veri okunurken varlık listesini filtreler alınır. Noktalı virgülle ayrılmış liste olarak geçirilir. entitylogicalname< formunu >kullanma;<entitylogicalname>

--entitytypesfolder -etf

Varlıkları içeren klasör adı. Varsayılan ad 'Varlıklar'dır.

--environment -env

Hedef Dataverse'i belirtir. Değer guid veya mutlak https URL'si olabilir. Belirtilmediğinde, geçerli kimlik doğrulama profili için seçilen etkin kuruluş kullanılır.

--generateGlobalOptionSets -go

Tüm Genel OptionSet'leri yayar. Not: Bir varlık genel bir seçenek kümesine başvuru içeriyorsa, bu anahtar mevcut olmasa bile yayılır.

--generatesdkmessages -a

Ayarlandığında, kod oluşturmanın bir parçası olarak Sdk ileti sınıflarını yayar.

Bu parametre için değer gerekmez. Bu bir anahtar.

--language -l

Oluşturulan proxy kodu için kullanılacak dil. Bu değer 'CS' veya 'VB' olabilir. Varsayılan dil 'CS'dir.

--logLevel -ll

Günlük düzeyi. Varsayılan değer 'Kapalı'dır.

Şu değerlerden birini kullanın:

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

--messagenamesfilter -mnf

Dataverse'den veri okunurken alınan iletilerin listesini filtreler. Noktalı virgülle ayrılmış liste olarak geçirildiğinde, gerekli iletiler (Oluştur, Güncelleştir, Sil, Al, RetrieveMultiple, İlişkilendir ve İlişkisini Kaldır) her zaman eklenir. Bir dizeyle başlayan veya biten tüm iletilere izin vermek için iletilerin adlarıyla sondaki veya baştaki yıldız işaretini (*) kullanın. form <ileti adını> kullanma;<ileti adı>.

--messagestypesfolder -mtf

İletileri içeren klasör adı. Varsayılan ad "İletiler"dir.

--namespace -n

Oluşturulan kodun ad alanı. Varsayılan ad alanı genel ad alanıdır.

--optionsetstypesfolder -otf

Seçenek kümelerini içeren klasör adı. Varsayılan ad :'OptionSets'.

--serviceContextName -sctx

Oluşturulan hizmet bağlamı için ad. Bir değer geçirilirse, Hizmet Bağlamı için kullanılır. Aksi takdirde Hizmet Bağlamı oluşturulmaz.

--settingsTemplateFile -stf

Dataverse Model Builder'ın bu çalıştırması için kullanılacak Ayarları içerir, komut satırındaki yinelenen parametreleri geçersiz kılar. --writesettingstemplate kullanıldığında ayarlanamaz.

--suppressGeneratedCodeAttribute -sgca

Bu ayar ayarlandığında, oluşturulan tüm nesnelerin kod oluşturma altyapısı ve sürümüyle etiketlenmesini gizler

Bu parametre için değer gerekmez. Bu bir anahtar.

--suppressINotifyPattern

Etkinleştirildiğinde, özellikler ve sınıflar için INotify sarmalayıcılarını yazmaz.

--writesettingsTemplateFile -wstf

Ayarlandığında, geçerli geçirilen ayarlarla veya varsayılan ayarlarla çıkış dizinine bir ayarlar dosyası yazar.

Açıklamalar

Aşağıda komutunu kullanmaya yönelik öneriler yer alır pac modelbuilder build .

entitynamesfilter ve messagenamesfilter parametrelerini ayarlama

Dikkat

Oluşturulan dosyaları projenizde kullanacağınız dosyalarla sınırlamak için entitynamesfilter ve messagenamesfilter parametrelerini kullanmanızı kesinlikle öneririz. Aksi takdirde, derleme komutu Dataverse'den gelen tüm tablolar ve iletiler için kod oluşturmayı dener. Bu işlemin tamamlanması önemli ölçüde zaman alacaktır.

Microsoft.Crm.Sdk.Messages ve Microsoft.Xrm.Sdk.Messages ad alanında bulunan iletilerin sınıfları bu komut kullanılarak oluşturulmaz. Parametreye messagenamesfilter yalnızca özel eylemler gibi orada bulunmayan iletileri dahil etmelisiniz.

WPF uygulaması oluşturmuyorsanız ayarlayın suppressINotifyPattern

INotify Bu komut tarafından gizlenen sarmalayıcılar WPF uygulamalarıyla veri bağlama senaryoları için kullanılır. Oluşturulan kodla bir WPF uygulaması oluşturmuyorsanız bunlara ihtiyacınız yoktur. Bunları engellemek için suppressINotifyPattern parametresini kullanın.

İleti sınıfları oluşturulurken ekle serviceContextName

İleti sınıfları oluşturuyorsanız, kullanmasanız bile oluşturmak için her zaman OrganizationServiceContext parametresini eklemeniz gerekir. Oluşturulan ileti sınıfları bu dosyada bir özellik kümesi gerektirir. Bunu ayarlamazsanız oluşan hata hakkında daha fazla bilgi edinin.

Ayrıca bakınız

Microsoft Power Platform CLI Komut Grupları
Microsoft Power Platform CLI'ya genel bakış