แชร์ผ่าน


pac modelbuilder

ตัวสร้างโค้ดสําหรับ Dataverse API และตาราง

ใช้คําสั่งรุ่น pac modelbuilder เพื่อสร้างคลาส .NET ที่ผูกไว้ล่วงหน้าสําหรับตาราง Dataverse ข้อความแบบกําหนดเอง และคลาสที่สืบทอดมาจากระดับ OrganizationServiceContext เรียนรู้เพิ่มเติมเกี่ยวกับการใช้คําสั่งนี้เพื่อสร้างคลาสขั้น bound

คลาสที่ได้รับมาจาก OrganizationServiceContext:

  • รักษาสถานะบนไคลเอ็นต์เพื่อสนับสนุนคุณลักษณะต่าง ๆ เช่น การจัดการการเปลี่ยนแปลง
  • ใช้ตัว ให้บริการคิวรี System.Linq.IQueryable และ .NET Language-Integrated Query (LINQ) เพื่อให้คุณสามารถเขียนคิวรี LINQ โดยใช้ข้อมูล verse

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถที่เครื่องมือสร้างโค้ดนี้เปิดใช้งาน:

Note

คําสั่ง pac modelbuilder build แทนที่ CrmSvcUtil.exe การแจกจ่ายด้วยแพคเกจ Microsoft.CrmSdk.CoreTools NuGet

คำสั่ง

คำสั่ง คำอธิบาย
รุ่น pac modelbuilder สร้างแบบจําลองโค้ดสําหรับ Dataverse API และตาราง

รุ่น pac modelbuilder

สร้างแบบจําลองโค้ดสําหรับ Dataverse API และตาราง

Note

ก่อนที่คุณจะสามารถใช้ 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
|---OptionSets\
| |
|--- ข้อความ\
| |--examp_myapi.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 ในเวลาเดียวกัน

พารามิเตอร์ที่จําเป็นสําหรับการสร้างแบบจําลอง

--outdirectory -o

เขียนไดเรกทอรีสําหรับเอนทิตี ข้อความ และไฟล์ชุดตัวเลือก

พารามิเตอร์ตัวเลือกสําหรับการสร้างแบบจําลอง

--emitentityetc -etc

เมื่อตั้งค่า แล้วให้รวมเอนทิตี ETC (รหัสประเภทเอนทิตี ) ในรหัสที่สร้างขึ้น

พารามิเตอร์นี้ไม่จําเป็นต้องมีค่า มันเป็นการสลับ

--emitfieldsclasses -efc

สร้างโครงสร้างค่าคงที่ที่ประกอบด้วยชื่อเขตข้อมูลทั้งหมดตามเอนทิตีในเวลาที่สร้างโค้ด

พารามิเตอร์นี้ไม่จําเป็นต้องมีค่า มันเป็นการสลับ

--emitvirtualattributes -eva

เมื่อตั้งค่า ให้รวมแอตทริบิวต์ชื่อที่สนับสนุนสําหรับการค้นหาที่เปิดใช้งานการกรองค่าแอตทริบิวต์ชื่อหลักของแอตทริบิวต์การค้นหา

พารามิเตอร์นี้ไม่จําเป็นต้องมีค่า มันเป็นการสลับ

--entitynamesfilter -enf

กรองรายการของเอนทิตีจะถูกเรียกใช้เมื่ออ่านข้อมูลจาก Dataverse ส่งผ่านเป็นรายการที่คั่นด้วนเซมิโคลอน การใช้ฟอร์ม<ชื่อแบบลอการิ><ทธิ์entitylogicalname>

--entitytypesfolder -etf

ชื่อโฟลเดอร์ที่ประกอบด้วยเอนทิตี ชื่อเริ่มต้นคือ 'เอนทิตี'

--environment -env

ระบุ Dataverse เป้าหมาย ค่าอาจเป็น Guid หรือ https URL แบบสัมบูรณ์ เมื่อไม่ได้ระบุ องค์กรที่ใช้งานอยู่ที่เลือกสําหรับโพรไฟล์การรับรองความถูกต้องปัจจุบันจะถูกใช้

--generateGlobalOptionSets -go

ปล่อยชุดตัวเลือกส่วนกลางทั้งหมด หมายเหตุ: ถ้าเอนทิตีมีการอ้างอิงไปยังชุดตัวเลือกส่วนกลาง จะมีการปล่อยไว้แม้ว่าสวิตช์นี้จะไม่ปรากฏ

--generatesdkmessages -a

เมื่อตั้งค่า ปล่อยคลาสของข้อความ Sdk เป็นส่วนหนึ่งของการสร้างโค้ด

พารามิเตอร์นี้ไม่จําเป็นต้องมีค่า มันเป็นการสลับ

--language -l

ภาษาที่ใช้สําหรับรหัสพร็อกซีที่สร้างขึ้น ค่านี้สามารถเป็น 'CS' หรือ 'VB' อย่างใดอย่างหนึ่ง ภาษาเริ่มต้นคือ 'CS'

--logLevel -ll

ระดับรายการบันทึก ค่าเริ่มต้นคือ 'ปิด'

ใช้หนึ่งในค่าเหล่านี้:

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

--messagenamesfilter -mnf

กรองรายการของข้อความที่ถูกเรียกใช้เมื่ออ่านข้อมูลจาก Dataverse ถูกส่งผ่านเป็นรายการคั่นด้วยเครื่องหมายอัฒภาค ข้อความที่จําเป็น (สร้าง อัปเดต ลบ เรียกใช้ RetrieveMultiple Associate และ Disassociate) จะรวมอยู่เสมอ ใช้เครื่องหมายดอกจันต่อท้ายหรือนําหน้า (*) ด้วยชื่อของข้อความเพื่ออนุญาตให้ข้อความทั้งหมดที่ขึ้นต้นด้วยหรือลงท้ายด้วยสตริง การใช้ชื่อ<>ข้อความของฟอร์ม<ชื่อ>ข้อความ

--messagestypesfolder -mtf

ชื่อโฟลเดอร์ที่มีข้อความ ชื่อเริ่มต้นคือ 'ข้อความ'

--namespace -n

เนมสเปซสําหรับโค้ดที่สร้างขึ้น เนมสเปซเริ่มต้นคือ namespace ส่วนกลาง

--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 namespace ไม่ได้สร้างขึ้นโดยใช้คําสั่งนี้ คุณควรรวมเฉพาะข้อความที่พบใน messagenamesfilter พารามิเตอร์เท่านั้น เช่น การดําเนินการแบบกําหนดเอง

ตั้งค่า suppressINotifyPattern ถ้าคุณไม่ได้สร้างแอปพลิเคชัน WPF

wrappers INotify ที่จะถูกระงับโดยคําสั่งนี้ใช้สําหรับสถานการณ์ databinding กับแอปพลิเคชัน WPF ถ้าคุณไม่ได้สร้างแอปพลิเคชัน WPF ด้วยโค้ดที่สร้างขึ้น คุณไม่จําเป็นต้องใช้ ใช้พารามิเตอร์ suppressINotifyPattern เพื่อระงับพารามิเตอร์เหล่านั้น

รวม serviceContextName เมื่อสร้างคลาสข้อความ

ถ้าคุณกําลังสร้างระดับชั้นข้อความ คุณควรรวมพารามิเตอร์ serviceContextName เพื่อสร้าง OrganizationServiceContextแม้ว่าคุณไม่ได้ใช้ ระดับชั้นข้อความที่สร้างขึ้นจําเป็นต้องมีการตั้งค่าคุณสมบัติในแฟ้มนี้ เรียนรู้เพิ่มเติมเกี่ยวกับข้อผิดพลาดที่เกิดขึ้นถ้าคุณไม่ได้ตั้งค่านี้

(ดูเพิ่มเติม )

กลุ่มคําสั่ง Microsoft Power Platform CLI
ภาพรวม Microsoft Power Platform CLI