Menggunakan Model Dokumen - AWS Mobile SDK

AWS Mobile SDK for Xamarin sekarang disertakan dalam AWS SDK for .NET. Panduan ini menjadi referensi versi yang diarsipkan dari Mobile SDK for Xamarin.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Model Dokumen

Model Dokumen menyediakan kelas pembungkus pada .NET API tingkat rendah. Tabel dan Dokumen adalah kelas pembungkus kunci. Anda dapat menggunakan Model Dokumen untuk membuat, mengambil, memperbarui dan menghapus item. Untuk membuat, memperbarui, dan menghapus tabel, Anda harus menggunakan API tingkat rendah. Untuk petunjuk tentang cara menggunakan API tingkat rendah, lihat Menggunakan API tingkat Layanan DynamoDB. API tingkat rendah tersedia di Amazon.DynamoDB.DocumentModelnamespace.

Untuk mem-pelajari selengkapnya tentang Model Dokumen, lihat Model Dokumen .NET.

Membuat Klien DynamoDB

Untuk membuat klien DynamoDB:

var client = new AmazonDynamoDBClient(credentials,region); DynamoDBContext context = new DynamoDBContext(client);

Operasi CRUD

Simpan Item

Buat item:

Table table = Table.LoadTable(client, "Books"); id = Guid.NewGuid().ToString(); var books = new Document(); books["Id"] = id; books["Author"] = "Mark Twain"; books["Title"] = "Adventures of Huckleberry Finn"; books["ISBN"] = "112-111111"; books["Price"] = "10";

Simpan item ke tabel DynamoDB:

var book = await table.PutItemAsync(books);

Ambil Item

Untuk mengambil item:

public async Task GetItemAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var book = await books.GetItemAsync(id); }

Perbarui Item

Untuk memperbarui item:

public async Task UpdateItemAttributesAsync(AWSCredentials credentials, RegionEndpoint region) { var book = new Document(); book["Id"] = id; book["PageCount"] = "200"; var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); Document updatedBook = await books.UpdateItemAsync(book); }

Untuk memperbarui item secara bersyarat:

public async Task UpdateItemConditionallyAsync(AWSCredentials credentials, RegionEndpoint region) { var book = new Document(); book["Id"] = id; book["Price"] = "30"; // For conditional price update, creating a condition expression. Expression expr = new Expression(); expr.ExpressionStatement = "Price = :val"; expr.ExpressionAttributeValues[":val"] = 10.00; var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); Document updatedBook = await books.UpdateItemAsync(book); }

Hapus Item

Untuk menghapus item:

public async Task DeleteItemAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); await books.DeleteItemAsync(id); }

Melakukan Kueri dan Pemindaian

Untuk melakukan kueri dan mengambil semua buku yang penulisnya adalah “Mark Twain”:

public async Task QueryAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var search = books.Query(new QueryOperationConfig() { IndexName = "Author-Title-index", Filter = new QueryFilter("Author", QueryOperator.Equal, "Mark Twain") }); Console.WriteLine("ScanAsync: printing query response"); var documents = await search.GetRemainingAsync(); documents.ForEach((d) = > { PrintDocument(d); }); }

Memindai contoh kode di bawah ini akan mengembalikan semua buku dalam tabel kami:

public async Task ScanAsync(AWSCredentials credentials, RegionEndpoint region) { var client = new AmazonDynamoDBClient(credentials, region); Table books = Table.LoadTable(client, "Books"); var search = books.Scan(new ScanOperationConfig() { ConsistentRead = true }); Console.WriteLine("ScanAsync: printing scan response"); var documents = await search.GetRemainingAsync(); documents.ForEach((d) = > { PrintDocument(d); }); }