Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Μπορείτε να συσχετίσετε μεμονωμένες εγγραφές σε γραμμές πίνακα με άλλες εγγραφές, χρησιμοποιώντας σχέσεις που υπάρχουν μεταξύ των ορισμών πίνακα. Στο 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