예: AWS SDK for .NET 객체 지속성 모델을 사용하는 CRUD 작업 - Amazon DynamoDB

예: AWS SDK for .NET 객체 지속성 모델을 사용하는 CRUD 작업

다음 C# 코드 예제에서는 Id, Title, IsbnBookAuthors 속성을 사용하여 Book 클래스를 선언합니다. 이 예제에서는 객체 지속성 속성을 사용하여 이러한 속성을 Amazon DynamoDB의 ProductCatalog 테이블로 매핑합니다. 그런 다음 이 예제는 DynamoDBContext 클래스를 사용하여 일반적인 생성, 읽기, 업데이트 및 삭제(CRUD) 작업을 설명합니다. 이 예제는 샘플 Book instance를 생성하고 ProductCatalog 테이블에 저장합니다. 그런 다음 책 항목을 검색하고 해당 IsbnBookAuthors 속성을 업데이트합니다. 업데이트가 기존의 저자 목록을 대체한다는 것에 유의하세요. 마지막으로 이 예제는 책 항목을 삭제합니다.

이 예제에 사용되는 ProductCatalog 테이블에 대한 자세한 내용은 DynamoDB에서 테이블 생성 및 코드 예시에 대한 데이터 로드 단원을 참조하세요. 다음 예제를 테스트하기 위한 단계별 지침은 .NET 코드 예시 단원을 참조하세요.

참고

다음 예제는 동기식 메서드를 지원하지 않으므로 .NET Core에서 작동하지 않습니다. 자세한 내용은 .NET용 AWS 비동기식 API를 참조하세요.

예 DynamoDBContext 클래스를 사용한 CRUD 작업
/// <summary> /// Shows how to perform high-level CRUD operations on an Amazon DynamoDB /// table. /// </summary> public class HighLevelItemCrud { public static async Task Main() { var client = new AmazonDynamoDBClient(); DynamoDBContext context = new DynamoDBContext(client); await PerformCRUDOperations(context); } public static async Task PerformCRUDOperations(IDynamoDBContext 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 to the ProductCatalog table. await context.SaveAsync(myBook); // Retrieve the book from the ProductCatalog table. Book bookRetrieved = await context.LoadAsync<Book>(bookId); // Update some properties. bookRetrieved.Isbn = "222-2222221001"; // Update existing authors list with the following values. bookRetrieved.BookAuthors = new List<string> { " Author 1", "Author x" }; await context.SaveAsync(bookRetrieved); // Retrieve the updated book. This time, add the optional // ConsistentRead parameter using DynamoDBContextConfig object. await context.LoadAsync<Book>(bookId, new DynamoDBContextConfig { ConsistentRead = true, }); // Delete the book. await context.DeleteAsync<Book>(bookId); // Try to retrieve deleted book. It should return null. Book deletedBook = await context.LoadAsync<Book>(bookId, new DynamoDBContextConfig { ConsistentRead = true, }); if (deletedBook == null) { Console.WriteLine("Book is deleted"); } } }
ProductCatalog 테이블에 추가할 책 클래스 정보
/// <summary> /// A class representing book information to be added to the Amazon DynamoDB /// ProductCatalog table. /// </summary> [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; } }