Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

例: AWS SDK for .NET オブジェクト永続性モデルを使用した CRUD オペレーション

次の C# サンプルコードでは、IdTitleISBN、および Authors プロパティを使用して Book クラスを宣言しています。この例では、オブジェクトの永続性属性を使用して、これらのプロパティを Amazon DynamoDB の ProductCatalog テーブルにマップします。次に、この例では DynamoDBContext を使用して、一般的な作成、読み取り、更新、および削除 (CRUD) オペレーションを示します。この例では、サンプルの Book インスタンスを作成して ProductCatalog テーブルに保存しています。さらに書籍項目を取り出し、その ISBN および Authors プロパティを更新しています。更新によって、既存の作成者リストが置き換えられていることに注意してください。最終的に、この例では書籍項目が削除されています。

この例で使用されている ProductCatalog テーブルの詳細については、「テーブルの作成とサンプルデータのロード」を参照してください。次の例をテストするための詳しい手順については、「.NET コード例」を参照してください。

注記

以下の例は、同期メソッドをサポートしていないため、.NET Core コアには適用されません。詳細については、「AWS の .NET 用非同期 API」を参照してください。

/** * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * This file is licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. A copy of * the License is located at * * http://aws.amazon.com/apache2.0/ * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ using System; using System.Collections.Generic; using Amazon.DynamoDBv2; using Amazon.DynamoDBv2.DataModel; using Amazon.Runtime; namespace com.amazonaws.codesamples { class HighLevelItemCRUD { private static AmazonDynamoDBClient client = new AmazonDynamoDBClient(); static void Main(string[] args) { try { DynamoDBContext context = new DynamoDBContext(client); TestCRUDOperations(context); Console.WriteLine("To continue, press Enter"); Console.ReadLine(); } catch (AmazonDynamoDBException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } } private static void TestCRUDOperations(DynamoDBContext context) { int bookID = 1001; // Some unique value. Book myBook = new Book { Id = bookID, Title = "object persistence-AWS SDK for.NET SDK-Book 1001", ISBN = "111-1111111001", BookAuthors = new List<string> { "Author 1", "Author 2" }, }; // Save the book. context.Save(myBook); // Retrieve the book. Book bookRetrieved = context.Load<Book>(bookID); // Update few properties. bookRetrieved.ISBN = "222-2222221001"; bookRetrieved.BookAuthors = new List<string> { " Author 1", "Author x" }; // Replace existing authors list with this. context.Save(bookRetrieved); // Retrieve the updated book. This time add the optional ConsistentRead parameter using DynamoDBContextConfig object. Book updatedBook = context.Load<Book>(bookID, new DynamoDBContextConfig { ConsistentRead = true }); // Delete the book. context.Delete<Book>(bookID); // Try to retrieve deleted book. It should return null. Book deletedBook = context.Load<Book>(bookID, new DynamoDBContextConfig { ConsistentRead = true }); if (deletedBook == null) Console.WriteLine("Book is deleted"); } } [DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] //Partition key public int Id { get; set; } [DynamoDBProperty] public string Title { get; set; } [DynamoDBProperty] public string ISBN { get; set; } [DynamoDBProperty("Authors")] //String Set datatype public List<string> BookAuthors { get; set; } } }