Freigeben über


DocumentClient.UpsertDocumentAsync Methode

Definition

Überlädt

UpsertDocumentAsync(String, Object, RequestOptions, Boolean, CancellationToken)

Erstellt ein Dokument als asychronen Vorgang im Azure Cosmos DB-Dienst.

UpsertDocumentAsync(Uri, Object, RequestOptions, Boolean, CancellationToken)

Führt ein Dokument als asynchronen Vorgang im Azure Cosmos DB-Dienst durch.

UpsertDocumentAsync(String, Object, RequestOptions, Boolean, CancellationToken)

Erstellt ein Dokument als asychronen Vorgang im Azure Cosmos DB-Dienst.

public System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>> UpsertDocumentAsync (string documentsFeedOrDatabaseLink, object document, Microsoft.Azure.Documents.Client.RequestOptions options = default, bool disableAutomaticIdGeneration = false, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertDocumentAsync : string * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
override this.UpsertDocumentAsync : string * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
Public Function UpsertDocumentAsync (documentsFeedOrDatabaseLink As String, document As Object, Optional options As RequestOptions = Nothing, Optional disableAutomaticIdGeneration As Boolean = false, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResourceResponse(Of Document))

Parameter

documentsFeedOrDatabaseLink
String

Der Link des DocumentCollection zum Upsertieren des Dokuments in. z.B. dbs/db_rid/colls/coll_rid/

document
Object

Das dokumentobjekt, das upsert werden soll.

options
RequestOptions

(Optional) Alle Anforderungsoptionen, die Sie festlegen möchten. Beispiel: Angeben eines Triggers, der beim Erstellen des Dokuments ausgeführt werden soll. RequestOptions

disableAutomaticIdGeneration
Boolean

(Optional) Deaktiviert die automatische ID-Generierung. Wenn dies True ist, löst das System eine Ausnahme aus, wenn die Id-Eigenschaft im Dokument fehlt.

cancellationToken
CancellationToken

(Optional) Ein CancellationToken , der von anderen Objekten oder Threads verwendet werden kann, um eine Benachrichtigung über den Abbruch zu erhalten.

Gibt zurück

Die Document , die in einem Task Objekt enthalten ist, das die Dienstantwort für den asynchronen Vorgang darstellt.

Implementiert

Ausnahmen

Wenn oder documentsFeedOrDatabaseLinkdocument nicht festgelegt ist.

Stellt eine Konsolidierung von Fehlern dar, die während der asynchronen Verarbeitung aufgetreten sind. Suchen Sie in InnerExceptions nach den tatsächlichen Ausnahmen.

Diese Ausnahme kann viele verschiedene Fehlertypen kapseln. Um den spezifischen Fehler zu ermitteln, sehen Sie sich immer die StatusCode-Eigenschaft an. Einige häufige Codes, die Sie beim Erstellen eines Dokuments erhalten können, sind:

StatusCodeGrund für die Ausnahme
400BadRequest: Dies bedeutet, dass mit dem angegebenen Dokument ein Fehler aufgetreten ist. Es ist wahrscheinlich, dass disableAutomaticIdGeneration wahr war, und es wurde keine ID angegeben.
403Verboten: Dies bedeutet wahrscheinlich, dass die Sammlung, in der Sie versucht haben, ein Upserting des Dokuments auszuführen, voll ist.
409Konflikt: Dies bedeutet, dass eine Document mit einer ID übereinstimmt, die dem Id-Feld von document bereits vorhanden entspricht.
413RequestEntityTooLarge: Dies bedeutet, dass die Document die aktuelle maximale Entitätsgröße überschreitet. Informationen zu Grenzwerten und Kontingenten finden Sie in der Dokumentation.
429TooManyRequests: Dies bedeutet, dass Sie die Anzahl der Anforderungseinheiten pro Sekunde überschritten haben. Lesen Sie den DocumentClientException.RetryAfter-Wert, um zu sehen, wie lange Sie warten sollten, bevor Sie diesen Vorgang wiederholen.

Beispiele

Azure Cosmos DB unterstützt eine Reihe verschiedener Möglichkeiten zum Arbeiten mit Dokumenten. Ein Dokument kann erweitert werden. Resource

public class MyObject : Resource
{
    public string MyProperty {get; set;}
}

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.UpsertDocumentAsync("dbs/db_rid/colls/coll_rid/", new MyObject { MyProperty = "A Value" });
}

Ein Dokument kann ein beliebiges POCO-Objekt sein, das in JSON serialisiert werden kann, auch wenn es nicht von Resource

public class MyPOCO
{
    public string MyProperty {get; set;}
}

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.UpsertDocumentAsync("dbs/db_rid/colls/coll_rid/", new MyPOCO { MyProperty = "A Value" });
}

Ein Dokument kann auch ein dynamisches Objekt sein.

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.UpsertDocumentAsync("dbs/db_rid/colls/coll_rid/", new { SomeProperty = "A Value" } );
}

Upsertieren eines Dokuments und Ausführen eines Pre- und Post-Triggers

using (IDocumentClient client = new DocumentClient(new Uri("service endpoint"), "auth key"))
{
    Document doc = await client.UpsertDocumentAsync(
        "dbs/db_rid/colls/coll_rid/",
        new { id = "DOC123213443" },
        new RequestOptions
        {
            PreTriggerInclude = new List<string> { "MyPreTrigger" },
            PostTriggerInclude = new List<string> { "MyPostTrigger" }
        });
}

Weitere Informationen

Gilt für:

UpsertDocumentAsync(Uri, Object, RequestOptions, Boolean, CancellationToken)

Führt ein Dokument als asynchronen Vorgang im Azure Cosmos DB-Dienst durch.

public System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>> UpsertDocumentAsync (Uri documentCollectionUri, object document, Microsoft.Azure.Documents.Client.RequestOptions options = default, bool disableAutomaticIdGeneration = false, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertDocumentAsync : Uri * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
override this.UpsertDocumentAsync : Uri * obj * Microsoft.Azure.Documents.Client.RequestOptions * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Documents.Client.ResourceResponse<Microsoft.Azure.Documents.Document>>
Public Function UpsertDocumentAsync (documentCollectionUri As Uri, document As Object, Optional options As RequestOptions = Nothing, Optional disableAutomaticIdGeneration As Boolean = false, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResourceResponse(Of Document))

Parameter

documentCollectionUri
Uri

der URI der Dokumentauflistung, in die das Dokument eingefügt werden soll.

document
Object

das Dokumentobjekt.

options
RequestOptions

Die Anforderungsoptionen für die Anforderung.

disableAutomaticIdGeneration
Boolean

Deaktiviert die automatische ID-Generierung, löst eine Ausnahme aus, wenn id fehlt.

cancellationToken
CancellationToken

(Optional) CancellationToken stellt den Anforderungsabbruch dar.

Gibt zurück

Das Aufgabenobjekt, das die Dienstantwort für den asynchronen Vorgang darstellt.

Implementiert

Gilt für: