Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tablo tanımları arasında var olan ilişkileri kullanarak tablo satırlarındaki tek tek kayıtları diğer kayıtlarla ilişkilendirebilirsiniz. OData'da ilişkiler gezinti özellikleri olarak ifade edilir.
$metadata hizmet belgesinde hangi gezinti özelliklerinin mevcut olduğunu keşfedebilirsiniz. Bkz. Web API'sinde Gezinti Özellikleri. Mevcut Dataverse tabloları için bkz. Web API EntityType Başvurusu, her varlık türü için listelenen tek değerli ve koleksiyon değerli gezinti özelliklerine bakın.
Aşağıdaki tabloda Dataverse'deki tablolar arasındaki üç ilişki türü açıklanmaktadır.
| Türü | Description | Example |
|---|---|---|
| Birden Çoka | Bir kaydın kendisiyle ilişkilendirilmiş birçok kaydı olabilir. |
Hesap kaydı, contact_customer_accountskoleksiyon değerli gezinme özelliğinde birçok kişi kaydına sahip olabilir. |
| Çoktan Bire | Birçok kayıt tek bir kayıtla ilişkilendirilebilir. Çoka Bir, Bire Çok ilişkisinin ayna görüntüsüdür. Sadece bir ilişki var. |
Tek değerli gezinti özelliği kullanılarak, birden çok iletişim kaydı, tek bir hesap kaydıyla ilişkilendirilebilir. |
| Çoktan Çoka | Birçok kayıt birçok kayıtla ilişkilendirilebilir. | Her güvenlik rolü (rol),bir sistem kullanıcısının tanımına başvurular içerebilir. Her iki tablo da systemuserroles_associationkoleksiyon değerine sahip bir gezinti özelliği içerir. |
Tek değerli gezinti özelliklerini kullanma
Bir-çok veya çoktan-bir ilişkisinin çok tarafındaki mevcut kayıtlar için, diğer kayda bir Uri referansı ayarlayarak kaydı ilişkilendirebilirsiniz. Bunu yapmanın en kolay ve en yaygın yolu, tek değerli gezinme özelliğinin adına @odata.bind açıklamasını eklemek ve ardından değeri PATCH isteğinde diğer kaydın Uri'si olarak ayarlamak.
Tek değerli bir navigasyon özelliğiyle ilişkilendirme
Örneğin, tek değerli gezinti özelliği kullanarak iletişim kaydını bir hesapla ilişkilendirmek için:
İstek:
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)"
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Oluşturmada tablo satırlarını ilişkilendirme bölümünde açıklandığı gibi, yeni kayıtlar da var olan kayıtlarla aynı şekilde ilişkilendirilebilir.
Tek değerli bir gezinti özelliğiyle ilişkiyi kesmek
İlişkisini silmek istiyorsanız, değeri null olarak ayarlayabilirsiniz.
İstek:
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
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Bu şekilde ayrıştırma yaptığınızda @odata.bind açıklamasını eklemenize gerek kalmaz. Tek değerli gezinti özelliğinin adını kullanmanız yeterlidir:
İstek:
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
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Daha fazla bilgi: Temel güncelleştirme
Diğer yöntemler
Daha önce tek değerli gezinti özellikleriyle açıklanan sonuçları elde etmenin başka yolları da vardır.
Tek değerli gezinti özelliğinin PUT değerini ayarlamak için aşağıdaki parentcustomerid_account isteği kullanabilirsiniz:
İstek:
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)"
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Uyarı
Not: Değerini @odata.id ayarlarken mutlak bir URL kullanmalısınız.
Referansı kaldırmak için şu DELETE isteğini de kullanabilirsiniz:
İstek:
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
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Koleksiyon değerli gezinti özelliklerini kullanma
OData ile çoka çok ilişkisinin her iki tarafı da koleksiyon değerli gezinti özelliklerine sahiptir. Bire-çok ve çoka-bir ilişkiler için, 'Bir' tarafındaki tablo koleksiyon değerli bir gezinme özelliğine sahiptir. Koleksiyon değerli gezinti özelliklerini kullanırken bu tür ilişkilerle çalışma şekliniz arasında bir fark yoktur. Bu bölümde, herhangi bir ilişki türüyle koleksiyonlar içeren gezinti özellikleriyle çalışma yöntemleri açıklanmaktadır.
Koleksiyona kayıt ekleme
Aşağıdaki örnek, bire çok ilişkisinin parçası olan hesap koleksiyonuna bir kişicontact_customer_accounts kaydının nasıl ekleneceğini göstermektedir.
İstek:
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)"
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Aşağıdaki örnek, çoka çok ilişkisi olan systemusersystemuserroles_association koleksiyonuna bir rol kaydının nasıl ekleneceğini gösterir.
İstek:
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)"
}
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Koleksiyondan kayıt kaldırma
Aşağıdaki örnek, iletişim değerinin 00aa00aa-bb11-cc22-dd33-44ee44ee44ee olduğu hesapcontact_customer_accounts koleksiyonundan iletişim kaydının nasıl kaldırılacağını göstermektedir.
İstek:
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
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Aşağıdaki istek de çalışır:
İstek:
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
Yanıt:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Ayrıca bakınız
Web API'si Temel İşlem Örneği (C#)
Web API Temel İşlem Örneği (İstemci Tarafı JavaScript)
Web API'sini kullanarak işlemler gerçekleştirme
Http istekleri oluşturma ve hataları işleme
Web API'sini kullanarak Verileri Sorgulama
Web API'sini kullanarak tablo satırı oluşturma
Web API'sini kullanarak tablo satırı alma
Web API'sini kullanarak tablo satırlarını güncelleştirme ve silme
Web API işlevlerini kullanma
Web API işlemlerini kullanma
Web API'sini kullanarak toplu işlemleri yürütme
Web API'sini kullanarak başka bir kullanıcının kimliğine bürünme
Web API'sini kullanarak koşullu işlemler gerçekleştirme