แชร์ผ่าน


เชื่อมโยงและแยกแถวตารางโดยใช้ API เว็บ

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

คุณสามารถค้นหาคุณสมบัติการนําทางที่มีอยู่แล้วในเอกสารบริการ$metadata ดูคุณสมบัติการนําทาง API เว็บ สําหรับตาราง Dataverse ที่มีอยู่ ให้ดู การอ้างอิง EntityType ของ API เว็บ สําหรับเอนทิตีแต่ละประเภท ดูคุณสมบัติการนําทางแบบค่าเดียวและค่าคอลเลกชันที่แสดงในรายการ

ตารางต่อไปนี้อธิบายความสัมพันธ์สามชนิดระหว่างตารางใน Dataverse

ประเภท คำอธิบาย ตัวอย่าง
หนึ่งต่อหลาย ระเบียนหนึ่งสามารถมีหลายระเบียนที่เชื่อมโยงอยู่ด้วยได้ ระเบียนบัญชีสามารถมีระเบียนผู้ติดต่อจํานวนมากในcontact_customer_accountsคุณสมบัติการนําทางที่มีค่าคอลเลกชัน
หลายต่อหนึ่ง หลายระเบียนสามารถเชื่อมโยงกับหนึ่งระเบียนได้

ความสัมพันธ์แบบหลายต่อหนึ่งเป็นภาพสะท้อนของความสัมพันธ์แบบหนึ่งต่อหลาย มีเพียงความสัมพันธ์เดียวเท่านั้น
เรกคอร์ดผู้ติดต่อหลายรายการสามารถเชื่อมโยงกับเรกคอร์ดบัญชีเดียวได้โดยใช้parentcustomerid_accountคุณสมบัติการนําทางแบบค่าเดียว
กลุ่มต่อกลุ่ม หลายเรกคอร์ดสามารถเชื่อมโยงกับเรกคอร์ดจํานวนมาก แต่ละบทบาทความปลอดภัย (บทบาท) อาจรวมถึงการอ้างอิงถึงข้อกําหนดของ systemuser
ทั้งสองตารางเหล่านี้มีคุณสมบัติsystemuserroles_associationการนําทางที่มีค่าคอลเลกชัน

การใช้พร็อพเพอร์ตี้การนำทางแบบค่าเดียว

สําหรับระเบียนที่มีอยู่ด้าน กลุ่ม ของความสัมพันธ์แบบหนึ่งต่อกลุ่มหรือกลุ่มต่อหนึ่ง คุณสามารถเชื่อมโยงระเบียนได้โดยการตั้งค่าการอ้างอิง Uri ไปยังระเบียนอื่น วิธีที่ง่ายที่สุดและใช้กันทั่วไปในการดําเนินการนี้คือ การผนวก @odata.bind คําอธิบายประกอบเข้ากับชื่อของคุณสมบัติการนําทางแบบค่าเดียว แล้วตั้งค่าเป็น Uri ไปยังระเบียนอื่น ๆ ใน PATCH คําขอ

การเชื่อมโยงกับคุณสมบัติการนําทางแบบค่าเดียว

ตัวอย่างเช่น การเชื่อมโยงระเบียน ผู้ติดต่อ กับ บัญชี โดยใช้ parentcustomerid_account คุณสมบัติการนําทางแบบค่าเดียว:

ขอร้อง:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account@odata.bind": "accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

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

แยกการเชื่อมต่อกับคุณสมบัติการนำทางที่มีค่าหนึ่งค่า

ถ้าคุณต้องการยกเลิกการกําหนดความสัมพันธ์ คุณก็สามารถตั้งค่าเป็น null ได้

ขอร้อง:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account@odata.bind": null
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

เมื่อแยกความสัมพันธ์ในลักษณะนี้ คุณไม่จําเป็นต้องมี @odata.bind คําอธิบายประกอบ คุณสามารถใช้ชื่อของคุณสมบัติการนําทางแบบค่าเดียว:

ขอร้อง:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account": null
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

ข้อมูลเพิ่มเติม: อัปเดตพื้นฐาน

วิธีการอื่น ๆ

มีวิธีอื่น ๆ ในการบรรลุผลลัพธ์เดียวกันที่อธิบายไว้ก่อนหน้านี้ด้วยคุณสมบัติการนําทางแบบเดี่ยว

คุณสามารถใช้คําขอต่อไปนี้ PUT เพื่อตั้งค่าคุณสมบัติ parentcustomerid_account การนําทางค่าเดียว:

ขอร้อง:

PUT [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

Note

หมายเหตุ: คุณต้องใช้ URL แบบสัมบูรณ์เมื่อตั้งค่าสําหรับ@odata.id

หากต้องการลบการอ้างอิง คุณยังสามารถใช้คําขอนี้ได้ DELETE :

ขอร้อง:

DELETE [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

การใช้คุณสมบัติการนําทางที่มีค่าคอลเลกชัน

ด้วย OData ทั้งสองด้านของความสัมพันธ์แบบกลุ่มต่อกลุ่มมีคุณสมบัติการนําทางที่ให้ค่าคอลเลกชัน สำหรับความสัมพันธ์แบบหนึ่งต่อหลายและหลายต่อหนึ่ง ในความสัมพันธ์นี้ ตารางที่อยู่ทางด้าน 'หนึ่ง' จะมีคุณสมบัติการนำทางที่ช่วยในการจัดการข้อมูลแบบคอลเลกชัน คุณจะทํางานกับความสัมพันธ์ประเภทเหล่านี้ได้ไม่ต่างกันในขณะที่ใช้คุณสมบัติการนําทางที่มีค่าคอลเลกชัน ในส่วนนี้จะอธิบายวิธีการทํางานกับคุณสมบัติการนําทางที่มีค่าคอลเลกชันกับความสัมพันธ์ชนิดใดก็ตาม

เพิ่มระเบียนลงในคอลเลกชัน

ตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มระเบียน ผู้ติดต่อ ในคอลเลกชัน บัญชีcontact_customer_accounts ซึ่งเป็นส่วนหนึ่งของความสัมพันธ์แบบหนึ่งต่อกลุ่ม

ขอร้อง:

POST [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)"
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

ตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มระเบียน บทบาท ไปยังคอลเลกชัน systemusersystemuserroles_association ซึ่งเป็นความสัมพันธ์แบบกลุ่มต่อกลุ่ม

ขอร้อง:

POST [Organization Uri]/api/data/v9.2/systemusers(34dcbaf5-f718-ed11-b83e-00224837179f)/systemuserroles_association/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/roles(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
}

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

ลบเรกคอร์ดออกจากคอลเลกชัน

ตัวอย่างต่อไปนี้แสดงวิธีการลบเรกคอร์ดผู้ติดต่อในคอลเลกชันบัญชีcontact_customer_accountsที่ค่าผู้ติดต่อcontactidเป็น00aa00aa-bb11-cc22-dd33-44ee44ee44ee

ขอร้อง:

DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

คําขอต่อไปนี้ยังใช้งานได้:

ขอร้อง:

DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref?$id=[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

การตอบสนอง :

HTTP/1.1 204 NoContent
OData-Version: 4.0

ดูเพิ่มเติม

ตัวอย่างการดําเนินการพื้นฐานของ API เว็บ (C#)
ตัวอย่างการดําเนินการพื้นฐานของ API เว็บ (JavaScript ฝั่งไคลเอ็นต์)
ดําเนินงานโดยใช้ Web API
เขียนคําขอ Http และจัดการข้อผิดพลาด
สืบค้นข้อมูลโดยใช้ Web API
สร้างแถวตารางโดยใช้ API เว็บ
ดึงข้อมูลแถวของตารางโดยใช้ API ของเว็บ
อัปเดตและลบแถวของตารางโดยใช้ API เว็บ
ใช้ฟังก์ชัน API เว็บ
ใช้การดำเนินการ Web API
การดําเนินการชุดงานโดยใช้ API เว็บ
เลียนแบบผู้ใช้อื่นโดยใช้ API เว็บ
ดําเนินการตามเงื่อนไขโดยใช้ API เว็บ