次の方法で共有


Container.UpsertItemAsync<T> メソッド

定義

Azure Cosmos サービスの非同期操作としてアイテムをアップサートします。

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<T>> UpsertItemAsync<T> (T item, Microsoft.Azure.Cosmos.PartitionKey? partitionKey = default, Microsoft.Azure.Cosmos.ItemRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertItemAsync : 'T * Nullable<Microsoft.Azure.Cosmos.PartitionKey> * Microsoft.Azure.Cosmos.ItemRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<'T>>
Public MustOverride Function UpsertItemAsync(Of T) (item As T, Optional partitionKey As Nullable(Of PartitionKey) = Nothing, Optional requestOptions As ItemRequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ItemResponse(Of T))

型パラメーター

T

パラメーター

item
T

ID プロパティを含む必要がある JSON シリアル化可能なオブジェクト。 CosmosSerializer カスタム シリアライザーを実装する

partitionKey
Nullable<PartitionKey>

PartitionKey 項目の 。 指定しない場合は、{T} から抽出することで設定されます

requestOptions
ItemRequestOptions

(省略可能)アイテム要求のオプション。

cancellationToken
CancellationToken

(省略可能) CancellationToken 要求の取り消しを表します。

戻り値

非同期操作の ItemResponse<T> サービス応答を Task 表す オブジェクト内に含まれるアップサートされた 。

例外

非同期処理中に発生したエラーの統合を表します。 InnerExceptions 内を見て、実際の例外を見つけます

この例外により、さまざまな種類のエラーがカプセル化される可能性があります。 特定のエラーを特定するには、常に StatusCode プロパティを参照してください。 ドキュメントの作成時に取得できる一般的なコードは次のとおりです。

StatusCode例外の理由
400BadRequest - 指定されたドキュメントに問題が発生したことを意味します。
403禁止 - これは、ドキュメントのアップサートを試みたコレクションがいっぱいであることを意味する可能性があります。
413RequestEntityTooLarge - アイテムが現在の最大エンティティ サイズを超えています。 制限とクォータについては、ドキュメントを参照してください。
429TooManyRequests - つまり、1 秒あたりの要求ユニット数を超えています。 DocumentClientException.RetryAfter 値を調べ、この操作を再試行するまでの待機時間を確認します。

public class ToDoActivity{
    public string id {get; set;}
    public string status {get; set;}
}

ToDoActivity test = new ToDoActivity()
{
   id = Guid.NewGuid().ToString(),
   status = "InProgress"
};

ItemResponse<ToDoActivity> item = await this.container.UpsertItemAsync<ToDoActivity>(test, new PartitionKey(test.status));

適用対象