ynamoDBContext Kelas D - Amazon DynamoDB

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

ynamoDBContext Kelas D

Kelas DynamoDBContext adalah titik masuk ke basis data Amazon DynamoDB. Ini menyediakan koneksi ke DynamoDB dan memungkinkan Anda untuk mengakses data Anda dalam berbagai tabel, melakukan CRUD berbagai operasi, dan menjalankan kueri. Kelas DynamoDBContext menyediakan metode berikut.

Buat MultiTable BatchGet

Membuat objek MultiTableBatchGet, yang terdiri dari beberapa objek BatchGet individual. Setiap objek BatchGet dapat digunakan untuk mengambil item dari tabel DynamoDB tunggal.

Untuk mengambil item dari tabel, gunakan metode ExecuteBatchGet, dengan meneruskan objek MultiTableBatchGet sebagai parameter.

Buat MultiTable BatchWrite

Membuat objek MultiTableBatchWrite, yang terdiri dari beberapa objek BatchWrite individual. Setiap objek BatchWrite dapat digunakan untuk menulis atau menghapus item dalam tabel DynamoDB tunggal.

Untuk menulis ke tabel, gunakan metode ExecuteBatchWrite, dengan meneruskan objek MultiTableBatchWrite sebagai parameter.

CreateBatchGet

Membuat objek BatchGet yang dapat Anda gunakan untuk mengambil beberapa item dari tabel. Untuk informasi selengkapnya, lihat Batch get: Mendapatkan beberapa item .

createBatchWrite

Membuat objek BatchWrite yang dapat Anda gunakan untuk menempatkan beberapa item ke dalam tabel, atau untuk menghapus beberapa item dari tabel. Untuk informasi selengkapnya, lihat Penulisan batch: Menempatkan dan menghapus beberapa item .

Delete

Menghapus item dari tabel. Metode ini memerlukan kunci primer dari item yang ingin Anda hapus. Anda dapat memberikan nilai kunci primer maupun objek sisi klien yang berisi nilai kunci primer sebagai parameter untuk metode ini.

  • Jika Anda menentukan objek sisi klien sebagai parameter dan Anda telah mengaktifkan penguncian optimis, penghapusan hanya akan berhasil jika versi sisi klien dan sisi server objek cocok.

  • Jika Anda hanya menetapkan nilai kunci primer sebagai parameter, penghapusan akan berhasil terlepas dari apakah Anda telah mengaktifkan penguncian optimis atau tidak.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode DeleteAsync.

Dispose

Membuang semua sumber daya yang dikelola dan tidak dikelola.

Execute​batch​get

Membaca data dari satu atau beberapa tabel, yang memproses semua objek BatchGet dalam MultiTableBatchGet.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode ExecuteBatchGetAsync.

Execute​batch​write

Menulis atau menghapus data dalam satu atau beberapa tabel, yang memproses semua objek BatchWrite dalam MultiTableBatchWrite.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode ExecuteBatchWriteAsync.

FromDocument

Mengingat instans Document, metode FromDocument akan mengembalikan instans dari kelas sisi klien.

Langkah ini membantu jika Anda ingin menggunakan kelas model dokumen bersama dengan model persistensi objek untuk melakukan operasi data. Untuk informasi lebih lanjut tentang kelas model dokumen yang disediakan oleh AWS SDK for .NET, lihat.NET: Model dokumen.

Misalkan Anda memiliki objek Document bernama doc, yang berisi representasi item Forum. (Untuk mengetahui cara membuat objek ini, lihat deskripsi untuk metode ToDocument nanti dalam topik ini.) Anda dapat menggunakan FromDocument untuk mengambil item Forum dari Document, seperti yang ditunjukkan dalam contoh kode C# berikut.

contoh
forum101 = context.FromDocument<Forum>(101);
catatan

Jika objek Document mengimplementasikan antarmuka IEnumerable, Anda dapat menggunakan metode FromDocuments sebagai gantinya. Metode ini memungkinkan Anda melakukan iterasi pada semua instans kelas dalam Document.

FromQuery

Menjalankan operasi Query, dengan parameter kueri yang didefinisikan dalam objek QueryOperationConfig.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode FromQueryAsync.

FromScan

Menjalankan operasi Scan, dengan parameter pemindaian yang didefinisikan dalam objek ScanOperationConfig.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode FromScanAsync.

Get​target​table

Mengambil tabel target untuk jenis yang ditentukan. Langkah ini berguna jika Anda menulis konverter khusus untuk memetakan data arbitrer ke tabel DynamoDB, dan Anda perlu menentukan tabel yang terkait dengan jenis data khusus.

Muat

Mengambil item dari tabel. Metode ini hanya memerlukan kunci primer dari item yang ingin Anda ambil.

Secara default, DynamoDB akan mengembalikan item dengan nilai yang akhirnya konsisten. Untuk informasi tentang model konsistensi akhir, lihat Konsistensi baca.

Loadatau LoadAsync metode memanggil GetItemoperasi, yang mengharuskan Anda untuk menentukan kunci utama untuk tabel. Karena GetItem mengabaikan IndexName parameter, Anda tidak dapat memuat item menggunakan partisi indeks atau kunci sortir. Oleh karena itu, Anda harus menggunakan kunci utama tabel untuk memuat item.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode LoadAsync. Untuk melihat contoh penggunaan LoadAsync metode untuk melakukan CRUD operasi tingkat tinggi pada tabel DynamoDB, lihat contoh berikut.

/// <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"); } } }

Kueri

Mengkueri tabel berdasarkan parameter kueri yang Anda berikan.

Anda dapat mengkueri tabel hanya jika memiliki kunci primer komposit (kunci partisi dan kunci urutan). Saat mengkueri, Anda harus menentukan kunci partisi dan syarat yang berlaku untuk kunci urutan.

Katakanlah Anda memiliki kelas Reply sisi klien yang dipetakan ke tabel Reply di DynamoDB. Contoh kode C# berikut mengkueri tabel Reply untuk menemukan balasan utas dalam forum yang diposting dalam 15 hari terakhir. Tabel Reply memiliki kunci primer yang berisi kunci partisi Id dan kunci urutan ReplyDateTime. Untuk informasi selengkapnya tentang tabel Reply, lihat Membuat tabel dan memuat data untuk contoh kode di DynamoDB.

contoh
DynamoDBContext context = new DynamoDBContext(client); string replyId = "DynamoDB#DynamoDB Thread 1"; //Partition key DateTime twoWeeksAgoDate = DateTime.UtcNow.Subtract(new TimeSpan(14, 0, 0, 0)); // Date to compare. IEnumerable<Reply> latestReplies = context.Query<Reply>(replyId, QueryOperator.GreaterThan, twoWeeksAgoDate);

Tabel ini mengembalikan koleksi objek Reply.

Metode Query mengembalikan koleksi IEnumerable “lazy-loaded”. Metode ini awalnya hanya mengembalikan satu halaman hasil, lalu membuat panggilan layanan untuk halaman berikutnya jika diperlukan. Untuk mendapatkan semua item yang cocok, Anda perlu melakukan iterasi hanya pada IEnumerable.

Jika tabel Anda memiliki kunci primer sederhana (kunci partisi), Anda tidak dapat menggunakan metode Query. Sebaliknya, Anda dapat menggunakan metode Load dan menyediakan kunci partisi untuk mengambil item.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode QueryAsync.

Save

Menyimpan objek tertentu ke tabel. Jika kunci primer yang ditentukan dalam objek input tidak ada dalam tabel, metode akan menambahkan item baru ke tabel. Jika kunci primer ada, metode akan memperbarui item yang ada.

Jika Anda mengonfigurasi penguncian optimis, pembaruan hanya akan berhasil jika versi klien dan sisi server item cocok. Untuk informasi selengkapnya, lihat Penguncian optimis menggunakan nomor versi dengan DynamoDB menggunakan model persistensi objek AWS SDK for .NET.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode SaveAsync.

Pindai

Melakukan pemindaian pada seluruh tabel.

Anda dapat memfilter hasil pemindaian dengan menentukan syarat pemindaian. Syarat ini dapat dievaluasi pada setiap atribut dalam tabel. Katakanlah Anda memiliki kelas sisi klien Book yang dipetakan ke tabel ProductCatalog di DynamoDB. Contoh C# berikut memindai tabel dan hanya mengembalikan item buku dengan harga kurang dari 0.

contoh
IEnumerable<Book> itemsWithWrongPrice = context.Scan<Book>( new ScanCondition("Price", ScanOperator.LessThan, price), new ScanCondition("ProductCategory", ScanOperator.Equal, "Book") );

Metode Scan mengembalikan koleksi IEnumerable “lazy-loaded”. Metode ini awalnya hanya mengembalikan satu halaman hasil, lalu membuat panggilan layanan untuk halaman berikutnya jika diperlukan. Untuk mendapatkan semua item yang cocok, Anda hanya perlu melakukan iterasi pada IEnumerable.

Untuk alasan performa, Anda harus mencari tabel dan menghindari pemindaian tabel.

catatan

Untuk melakukan operasi ini di latar belakang, gunakan metode ScanAsync.

ToDocument

Mengembalikan instans untuk kelas model dokumen Document dari instans kelas Anda.

Langkah ini membantu jika Anda ingin menggunakan kelas model dokumen bersama dengan model persistensi objek untuk melakukan operasi data. Untuk informasi lebih lanjut tentang kelas model dokumen yang disediakan oleh AWS SDK for .NET, lihat.NET: Model dokumen.

Misalkan Anda memiliki kelas sisi klien yang dipetakan ke tabel Forum sampel. Anda kemudian dapat menggunakan DynamoDBContext untuk mendapatkan item sebagai objek Document dari tabel Forum, seperti yang ditunjukkan dalam contoh kode C# berikut.

contoh
DynamoDBContext context = new DynamoDBContext(client); Forum forum101 = context.Load<Forum>(101); // Retrieve a forum by primary key. Document doc = context.ToDocument<Forum>(forum101);

Menentukan parameter opsional untuk D ynamoDBContext

Saat menggunakan model persistensi objek, Anda dapat menentukan parameter opsional berikut untuk DynamoDBContext.

  • ConsistentReadSaat mengambil data menggunakan operasi Load, Query, atau Scan, Anda dapat menambahkan parameter opsional ini guna meminta nilai data terbaru.

  • IgnoreNullValuesParameter ini memberi tahu DynamoDBContext untuk mengabaikan nilai null pada atribut selama operasi Save. Jika parameter ini adalah false (atau jika tidak diatur), nilai null ditafsirkan sebagai direktif untuk menghapus atribut tertentu.

  • SkipVersionCheck Parameter ini memberi tahu DynamoDBContext untuk tidak membandingkan versi saat menyimpan atau menghapus item. Untuk informasi selengkapnya tentang penentuan versi, lihat Penguncian optimis menggunakan nomor versi dengan DynamoDB menggunakan model persistensi objek AWS SDK for .NET.

  • TableNamePrefix Memberikan prefiks pada semua nama tabel dengan string tertentu. Jika parameter ini adalah null (atau jika tidak diatur), tidak ada prefiks yang digunakan.

  • DynamoDBEntryConversion- Menentukan skema konversi yang digunakan oleh klien. Anda dapat mengatur parameter ini ke versi V1 atau V2. V1 adalah versi default.

    Berdasarkan versi yang Anda tetapkan, perilaku parameter ini berubah. Sebagai contoh:

    • Di V1, tipe bool data dikonversi ke tipe N angka, di mana 0 mewakili false dan 1 mewakili true. Dalam V2, bool dikonversi keBOOL.

    • Di V2, daftar dan array tidak dikelompokkan bersama. HashSets Daftar dan array numerik, tipe berbasis string, dan tipe berbasis biner dikonversi ke tipe L (Daftar), yang dapat dikirim kosong untuk memperbarui daftar. Ini tidak seperti V1, di mana daftar kosong tidak dikirim melalui kabel.

      Di V1, jenis koleksi, seperti Daftar, HashSet, dan array diperlakukan sama. Daftar, HashSet, dan array numerik dikonversi ke tipe NS (jumlah set).

    Contoh berikut menetapkan versi skema konversi ke V2, yang mengubah perilaku konversi antara. NETjenis dan tipe data DynamoDB.

    var config = new DynamoDBContextConfig { Conversion = DynamoDBEntryConversion.V2 }; var contextV2 = new DynamoDBContext(client, config);

Contoh C # berikut membuat yang baru DynamoDBContext dengan menentukan dua parameter opsional sebelumnya, dan. ConsistentRead SkipVersionCheck

contoh
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client, new DynamoDBContextConfig { ConsistentRead = true, SkipVersionCheck = true});

DynamoDBContext menyertakan parameter opsional ini dengan setiap permintaan yang Anda kirimkan menggunakan konteks ini.

Alih-alih mengatur parameter ini di tingkat DynamoDBContext, Anda dapat menentukannya untuk setiap operasi yang Anda jalankan menggunakan DynamoDBContext, seperti yang ditunjukkan dalam contoh kode C# berikut. Contoh ini memuat item buku tertentu. LoadMetode DynamoDBContext menentukan ConsistentRead dan parameter SkipVersionCheck opsional.

contoh
AmazonDynamoDBClient client = new AmazonDynamoDBClient(); ... DynamoDBContext context = new DynamoDBContext(client); Book bookItem = context.Load<Book>(productId,new DynamoDBContextConfig{ ConsistentRead = true, SkipVersionCheck = true });

Dalam kasus ini, DynamoDBContext menyertakan parameter tersebut hanya ketika mengirimkan permintaan Get.