के माध्यम से साझा करें


पीएसी मॉडलबिल्डर

Dataverse API और तालिकाओं के लिए कोड जेनरेटर

Dataverse तालिकाओं, कस्टम संदेशों और OrganizationServiceContext वर्ग से व्युत्पन्न वर्ग के लिए प्रारंभिक-बाउंड .NET वर्ग उत्पन्न करने के लिए pac modelbuilder build कमांड का उपयोग करें. प्रारंभिक बाउंड कक्षाएं उत्पन्न करने के लिए इस कमांड का उपयोग करने के बारे में अधिक जानें

से व्युत्पन्न OrganizationServiceContextवर्ग:

  • परिवर्तन प्रबंधन जैसी सुविधाओं का समर्थन करने के लिए क्लाइंट पर स्थिति बनाए रखता है।
  • System.Linq.IQueryable इंटरफ़ेस और एक .NET Language-Integrated क्वेरी (LINQ) क्वेरी प्रदाता लागू करता है ताकि आप Dataverse डेटा का उपयोग करके LINQ क्वेरी लिख सकें.

इस कोड जनरेशन उपकरण को सक्षम करने वाली क्षमताओं के बारे में अधिक जानकारी के लिए:

नोट

pac modelbuilder build आदेश CrmSvcUtil.exe NuGet पैकेज के साथ वितरित बदल देता है।

आदेश

Command विवरण
पीएसी मॉडलबिल्डर बिल्ड Dataverse API और तालिकाओं के लिए एक कोड मॉडल बनाता है

पीएसी मॉडलबिल्डर बिल्ड

Dataverse API और तालिकाओं के लिए एक कोड मॉडल बनाता है

नोट

इससे पहले कि आप कमांड का build उपयोग कर सकें, आपको पहले pac प्रमाणीकरण बनाने के आदेश का उपयोग करके Dataverse से कनेक्ट करना होगा। यदि आपके पास एकाधिक कनेक्शन हैं, तो उस Dataverse परिवेश को चुनने के लिए pac प्रमाणीकरण का उपयोग करें जिसके लिए आप कोड जनरेट करना चाहते हैं।

उदाहरण

निम्न उदाहरण दिखाता है कि कमांड प्रॉम्प्ट के साथ कमांड का उपयोग कैसे 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 का उपयोग करके पहले कमांड से जेनरेट की गई फ़ाइल का उपयोग करके दिखाता है:

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
}

यदि आप सेटिंग्स का उपयोग करते समय कमांड को पैरामीटर पास करते हैंTemplateFile पैरामीटर, कमांड को दिए गए पैरामीटर फ़ाइल में सेट builderSettings.json किए गए लोगों को ओवरराइड कर देंगे।

आप एक ही समय में settingsTemplateFile पैरामीटर और writesettingsTemplateFile पैरामीटर का उपयोग नहीं कर सकते।

मॉडलबिल्डर निर्माण के लिए आवश्यक पैरामीटर

--outdirectory -o

निकाय, संदेश और विकल्प सेट फ़ाइलों के लिए निर्देशिका लिखें।

मॉडलबिल्डर बिल्ड के लिए वैकल्पिक पैरामीटर

--emitentityetc -etc

जब सेट होता है, तो जेनरेट किए गए कोड में इकाई ईटीसी (इकाई प्रकार कोड) शामिल होता है।

इस पैरामीटर के लिए किसी मान की आवश्यकता नहीं है। यह एक स्विच है।

--emitfieldsclasses -efc

एक स्थिरांक संरचना जनरेट करें जिसमें कोड जनरेशन के समय निकाय द्वारा सभी फ़ील्ड नाम शामिल हों।

इस पैरामीटर के लिए किसी मान की आवश्यकता नहीं है। यह एक स्विच है।

--emitvirtualattributes -eva

सेट होने पर, लुकअप के लिए सहायक नाम विशेषताएँ शामिल होती हैं, जो लुकअप विशेषताओं के प्राथमिक नाम विशेषता मानों पर फ़िल्टरिंग सक्षम करती हैं.

इस पैरामीटर के लिए किसी मान की आवश्यकता नहीं है। यह एक स्विच है।

--entitynamesfilter -enf

फ़िल्टर करता है Dataverse से डेटा पढ़ते समय निकायों की सूची पुनर्प्राप्त की जाती है। अर्धविराम अलग सूची के रूप में पारित। प्रपत्र <entitylogicalname> का उपयोग करना;<entitylogicalname>

--entitytypesfolder -etf

फ़ोल्डर नाम जिसमें निकाय हैं. डिफ़ॉल्ट नाम "निकाय" है।

--environment -env

लक्ष्य Dataverse निर्दिष्ट करता है. मान एक Guid या निरपेक्ष https URL हो सकता है। निर्दिष्ट नहीं होने पर, वर्तमान प्रमाणीकरण प्रोफ़ाइल के लिए चयनित सक्रिय संगठन का उपयोग किया जाएगा।

--generateGlobalOptionSets -go

सभी वैश्विक विकल्पसेट का उत्सर्जन करें। नोट: यदि किसी निकाय में वैश्विक optionset का संदर्भ है, तो यह स्विच मौजूद न होने पर भी उत्सर्जित होता है.

--generatesdkmessages -a

सेट होने पर, कोड जनरेशन के हिस्से के रूप में Sdk संदेश कक्षाएं उत्सर्जित करता है।

इस पैरामीटर के लिए किसी मान की आवश्यकता नहीं है। यह एक स्विच है।

--language -l

जनरेट किए गए प्रॉक्सी कोड के लिए उपयोग की जाने वाली भाषा. यह मान या तो 'CS' या 'VB' हो सकता है। डिफ़ॉल्ट भाषा 'CS' है।

--logLevel -ll

लॉग स्तर। डिफ़ॉल्ट मान 'बंद' है।

इनमें से किसी एक मान का उपयोग करें:

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

--messagenamesfilter -mnf

उन संदेशों की सूची को फ़िल्टर करता है जो Dataverse से डेटा पढ़ते समय पुनर्प्राप्त किए जाते हैं. अर्धविराम से अलग सूची के रूप में पारित किया गया, आवश्यक संदेश (बनाएँ, अद्यतन, हटाएँ, पुनः प्राप्त करें, पुनः प्राप्त करेंबहुगुणित, संबद्ध करें और असंबद्ध करें) हमेशा शामिल होते हैं। स्ट्रिंग से शुरू होने वाले या समाप्त होने वाले सभी संदेशों की अनुमति देने के लिए संदेशों के नाम के साथ एक अनुगामी या अग्रणी तारांकन चिह्न (*) का उपयोग करें। प्रपत्र <संदेश नाम> का उपयोग करना;<messagename.>

--messagestypesfolder -mtf

फ़ोल्डर नाम जिसमें संदेश हैं. डिफ़ॉल्ट नाम 'संदेश' है।

--namespace -n

जनरेट किए गए कोड के लिए नामस्थान। डिफ़ॉल्ट नामस्थान वैश्विक नामस्थान है।

--optionsetstypesfolder -otf

फ़ोल्डर नाम जिसमें विकल्प सेट हैं. डिफ़ॉल्ट नाम 'OptionSets' है।

--serviceContextName -sctx

जनरेट किए गए सेवा संदर्भ के लिए नाम. यदि कोई मान पास किया जाता है, तो इसका उपयोग सेवा संदर्भ के लिए किया जाता है। यदि नहीं, तो कोई सेवा संदर्भ उत्पन्न नहीं होता है।

--settingsTemplateFile -stf

इसमें Dataverse मॉडल बिल्डर के इस रन के लिए उपयोग की जाने वाली सेटिंग्स शामिल हैं, कमांड लाइन पर किसी भी डुप्लिकेट पैरामीटर को ओवरराइड करती हैं। --writesettingstemplate का उपयोग किए जाने पर सेट नहीं किया जा सकता.

--suppressGeneratedCodeAttribute -sgca

सेट होने पर, यह कोड जनरेशन इंजन और संस्करण के साथ टैग किए जा रहे सभी जेनरेट किए गए ऑब्जेक्ट्स को दबा देता है

इस पैरामीटर के लिए किसी मान की आवश्यकता नहीं है। यह एक स्विच है।

--suppressINotifyPattern

सक्षम होने पर, गुणों और वर्गों के लिए INotify रैपर नहीं लिखता है।

--writesettingsTemplateFile -wstf

सेट होने पर, वर्तमान पास की गई सेटिंग्स या डिफ़ॉल्ट सेटिंग्स के साथ आउटपुट निर्देशिका में एक सेटिंग फ़ाइल लिखता है।

टिप्पणियां

कमांड का उपयोग करने pac modelbuilder build के लिए निम्नलिखित सिफारिशें हैं।

और पैरामीटर entitynamesfilter सेट करें messagenamesfilter

सावधानी

हम पुरजोर अनुशंसा करते हैं कि आप जनरेट की गई फ़ाइलों को उन फ़ाइलों तक सीमित करने के लिए entitynamesfilter और messagenamesfilter पैरामीटर का उपयोग करें जिनका आप अपने प्रोजेक्ट में उपयोग करेंगे। अन्यथा, बिल्ड कमांड Dataverse से सभी तालिकाओं और संदेशों के लिए कोड उत्पन्न करने का प्रयास करेगा। इसे संसाधित होने में काफी समय लगेगा।

Microsoft.Crm.Sdk.Messages और Microsoft.Xrm.Sdk.Messages नाम स्थान में पाए गए संदेशों के लिए वर्ग इस आदेश का उपयोग करके जनरेट नहीं होते हैं। आपको केवल उन संदेशों को शामिल करना चाहिए जो messagenamesfilter पैरामीटर में नहीं मिलते हैं, जैसे कस्टम क्रियाएँ.

यदि आप WPF एप्लिकेशन नहीं बना रहे हैं तो सेट करें suppressINotifyPattern

INotify इस आदेश द्वारा दबाए गए रैपर WPF अनुप्रयोगों के साथ डेटाबाइंडिंग परिदृश्य के लिए उपयोग किए जाते हैं। यदि आप जेनरेट किए गए कोड के साथ WPF एप्लिकेशन नहीं बना रहे हैं, तो आपको उनकी आवश्यकता नहीं है। उन्हें दबाने के लिए suppressINotifyPattern पैरामीटर का उपयोग करें।

संदेश वर्ग उत्पन्न करते समय शामिल करें serviceContextName

यदि आप संदेश वर्ग उत्पन्न कर रहे हैं, तो आपको हमेशा एक उत्पन्न करने के लिए OrganizationServiceContext पैरामीटर शामिल करना चाहिए, भले ही आप इसका उपयोग नहीं कर रहे हों। जनरेट किए गए संदेश वर्गों के लिए इस फ़ाइल में सेट गुण की आवश्यकता होती है। यदि आप इसे सेट नहीं करते हैं, तो होने वाली त्रुटि के बारे में अधिक जानें.

इसे भी देखें

Microsoft Power Platform CLI कमांड समूह
Microsoft Power Platform CLI अवलोकन