Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Μπορείτε να συσχετίσετε μεμονωμένες εγγραφές σε γραμμές πίνακα με άλλες εγγραφές, χρησιμοποιώντας σχέσεις που υπάρχουν μεταξύ των ορισμών πίνακα. Στο OData, οι σχέσεις εκφράζονται ως ιδιότητες περιήγησης.
Μπορείτε να ανακαλύψετε ποιες ιδιότητες περιήγησης υπάρχουν στο έγγραφο υπηρεσίας $metadata. Ανατρέξτε στο θέμα Ιδιότητες περιήγησης API Web. Για τους υπάρχοντες πίνακες Dataverse, ανατρέξτε στο θέμα Αναφορά τύπου οντότητας API Web, για κάθε τύπο οντότητας, ανατρέξτε στις παρατίθενται ιδιότητες περιήγησης μίας τιμής και συλλογής-τιμής.
Ο παρακάτω πίνακας περιγράφει τους τρεις τύπους σχέσεων μεταξύ πινάκων στο Dataverse.
| Type | Περιγραφή | Παράδειγμα |
|---|---|---|
| Ένα προς πολλά | Μία εγγραφή μπορεί να έχει πολλές εγγραφές συσχετισμένες με αυτή. | Μια εγγραφή λογαριασμού μπορεί να έχει πολλές εγγραφές επαφής στην 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
Σημείωμα
Σημείωση: Πρέπει να χρησιμοποιήσετε μια απόλυτη διεύθυνση 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
Δείτε επίσης
Δείγμα βασικών λειτουργιών web API (C#)
Δείγμα βασικών λειτουργιών web API (JavaScript από την πλευρά του προγράμματος-πελάτη)
Εκτέλεση λειτουργιών με χρήση του Web API
Σύνταξη αιτήσεων Http και χειρισμός σφαλμάτων
Ερώτημα για δεδομένα χρησιμοποιώντας το API Web
Δημιουργία γραμμής πίνακα με χρήση του API Web
Ανάκτηση γραμμής πίνακα με χρήση του API Web
Ενημέρωση και διαγραφή γραμμών πίνακα με χρήση του API Web
Χρήση συναρτήσεων Web API
Χρήση ενεργειών Web API
Εκτέλεση λειτουργιών δέσμης με χρήση του Web API
Μίμηση άλλου χρήστη χρησιμοποιώντας το Web API
Εκτέλεση λειτουργιών υπό όρους με χρήση του Web API