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

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

다음 C# 코드 예제에서는 Id, Title, ISBNAuthors 속성을 사용하여 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; } } }