範例:使用 AWS SDK for .NET 物件持久性模型的 CRUD 操作 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例:使用 AWS SDK for .NET 物件持久性模型的 CRUD 操作

下列 C# 程式碼範例會宣告具有 IdTitleISBNAuthors 屬性的 Book 類別。範例會使用物件持久性屬性,將這些屬性映射至 Amazon DynamoDB 中的 ProductCatalog 資料表。該範例接著會使用 DynamoDBContext 來說明典型的建立、讀取、更新和刪除 (CRUD) 操作。該範例會建立範例 Book 執行個體,並將其儲存至 ProductCatalog 資料表。它會接著擷取書籍項目並更新其 ISBNAuthors 屬性。請注意,更新會取代現有的作者清單。最後,該範例會刪除書籍項目。

如需此範例中所使用 ProductCatalog 資料表的詳細資訊,請參閱 在 DynamoDB 中建立資料表,以及載入程式碼範例的資料。如需測試下列範例的 step-by-step指示,請參閱.NET 程式碼範例

注意

下列範例無法搭配 .NET Core 使用,因為它不支援同步方法。如需詳細資訊,請參閱適用於 .NET 的 AWS 非同步 API

範例
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; } } }