TransactionalBatch クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Azure Cosmos DB サービスでトランザクション方式で実行されるコンテナー内の同じ PartitionKey 項目に対する操作のバッチを表します。 TransactionalBatch のインスタンスを作成するには、 を使用 CreateTransactionalBatch(PartitionKey) します。
public abstract class TransactionalBatch
type TransactionalBatch = class
Public MustInherit Class TransactionalBatch
- 継承
-
TransactionalBatch
例
この例では、一連のドキュメントをバッチとしてアトミックに変更します。
public class ToDoActivity
{
public string type { get; set; }
public string id { get; set; }
public string status { get; set; }
}
string activityType = "personal";
ToDoActivity test1 = new ToDoActivity()
{
type = activityType,
id = "learning",
status = "ToBeDone"
};
ToDoActivity test2 = new ToDoActivity()
{
type = activityType,
id = "shopping",
status = "Done"
};
ToDoActivity test3 = new ToDoActivity()
{
type = activityType,
id = "swimming",
status = "ToBeDone"
};
ToDoActivity test4 = new ToDoActivity()
{
type = activityType,
id = "running",
status = "ToBeDone"
};
List<PatchOperation> patchOperations = new List<PatchOperation>();
patchOperations.Add(PatchOperation.Replace("/status", "InProgress");
patchOperations.Add(PatchOperation.Add("/progress", 50);
using (TransactionalBatchResponse batchResponse = await container.CreateTransactionalBatch(new Cosmos.PartitionKey(activityType))
.CreateItem<ToDoActivity>(test1)
.ReplaceItem<ToDoActivity>(test2.id, test2)
.UpsertItem<ToDoActivity>(test3)
.PatchItem(test4.id, patchOperations)
.DeleteItem("reading")
.CreateItemStream(streamPayload1)
.ReplaceItemStream("eating", streamPayload2)
.UpsertItemStream(streamPayload3)
.ExecuteAsync())
{
if (!batchResponse.IsSuccessStatusCode)
{
// Handle and log exception
return;
}
// Look up interested results - eg. via typed access on operation results
TransactionalBatchOperationResult<ToDoActivity> replaceResult = batchResponse.GetOperationResultAtIndex<ToDoActivity>(0);
ToDoActivity readActivity = replaceResult.Resource;
}
この例では、ドキュメントのセットをバッチとしてアトミックに読み取ります。
string activityType = "personal";
using (TransactionalBatchResponse batchResponse = await container.CreateTransactionalBatch(new Cosmos.PartitionKey(activityType))
.ReadItem("playing")
.ReadItem("walking")
.ReadItem("jogging")
.ReadItem("running")
.ExecuteAsync())
{
// Look up interested results - eg. via direct access to operation result stream
List<string> resultItems = new List<string>();
foreach (TransactionalBatchOperationResult operationResult in batchResponse)
{
using (StreamReader streamReader = new StreamReader(operationResult.ResourceStream))
{
resultItems.Add(await streamReader.ReadToEndAsync());
}
}
}
注釈
コンストラクター
TransactionalBatch() |
Azure Cosmos DB サービスでトランザクション方式で実行されるコンテナー内の同じ PartitionKey 項目に対する操作のバッチを表します。 TransactionalBatch のインスタンスを作成するには、 を使用 CreateTransactionalBatch(PartitionKey) します。 |
メソッド
CreateItem<T>(T, TransactionalBatchItemRequestOptions) |
バッチに項目を作成する操作を追加します。 |
CreateItemStream(Stream, TransactionalBatchItemRequestOptions) |
バッチに項目を作成する操作を追加します。 |
DeleteItem(String, TransactionalBatchItemRequestOptions) |
アイテムをバッチに削除する操作を追加します。 |
ExecuteAsync(CancellationToken) |
非同期操作として、Azure Cosmos サービスでトランザクション バッチを実行します。 |
ExecuteAsync(TransactionalBatchRequestOptions, CancellationToken) |
非同期操作として、Azure Cosmos サービスでトランザクション バッチを実行します。 |
PatchItem(String, IReadOnlyList<PatchOperation>, TransactionalBatchPatchItemRequestOptions) |
項目にパッチを適用する操作をバッチに追加します。 |
ReadItem(String, TransactionalBatchItemRequestOptions) |
アイテムをバッチに読み取る操作を追加します。 |
ReplaceItem<T>(String, T, TransactionalBatchItemRequestOptions) |
項目をバッチに置き換える操作を追加します。 |
ReplaceItemStream(String, Stream, TransactionalBatchItemRequestOptions) |
項目をバッチに置き換える操作を追加します。 |
UpsertItem<T>(T, TransactionalBatchItemRequestOptions) |
アイテムをバッチにアップサートする操作を追加します。 |
UpsertItemStream(Stream, TransactionalBatchItemRequestOptions) |
アイテムをバッチにアップサートする操作を追加します。 |
適用対象
Azure SDK for .NET