Bekerja dengan. NETmodel persistensi objek dan DynamoDB - Amazon DynamoDB

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

Bekerja dengan. NETmodel persistensi objek dan DynamoDB

AWS SDK for .NET Ini menyediakan model persistensi objek yang memungkinkan Anda memetakan kelas sisi klien Anda ke tabel Amazon DynamoDB. Kemudian, setiap instans objek dipetakan ke item dalam tabel yang sesuai. Untuk menyimpan objek sisi klien ke tabel, model persistensi objek menyediakan kelas DynamoDBContext, yaitu titik masuk ke DynamoDB. Kelas ini memberi Anda koneksi ke DynamoDB dan memungkinkan Anda mengakses tabel, melakukan CRUD berbagai operasi, dan menjalankan kueri.

Model persistensi objek menyediakan sekumpulan atribut untuk memetakan kelas sisi klien ke tabel, dan properti/bidang ke atribut tabel.

catatan

Model persistensi objek tidak menyediakan tabel API untuk membuat, memperbarui, atau menghapus. Model ini hanya menyediakan operasi data. Anda hanya dapat menggunakan AWS SDK for .NET level rendah API untuk membuat, memperbarui, dan menghapus tabel.

Contoh berikut menunjukkan cara kerja model persistensi objek. Contoh ini dimulai dengan tabel ProductCatalog. Contoh ini memiliki Id sebagai kunci primernya.

ProductCatalog(Id, ...)

Katakanlah Anda memiliki kelas Book yang berisi properti Title, ISBN, dan Authors. Anda dapat memetakan kelas Book ke tabel ProductCatalog dengan menambahkan atribut yang didefinisikan oleh model persistensi objek, seperti yang ditunjukkan dalam kode contoh C# berikut.

contoh
[DynamoDBTable("ProductCatalog")] public class Book { [DynamoDBHashKey] public int Id { get; set; } public string Title { get; set; } public int ISBN { get; set; } [DynamoDBProperty("Authors")] public List<string> BookAuthors { get; set; } [DynamoDBIgnore] public string CoverPage { get; set; } }

Dalam contoh sebelumnya, atribut DynamoDBTable memetakan kelas Book ke tabel ProductCatalog.

Model persistensi objek mendukung pemetaan eksplisit dan default antara properti kelas dan atribut tabel.

  • Pemetaan eksplisit—Untuk memetakan properti ke kunci primer, Anda harus menggunakan atribut model persistensi objek DynamoDBHashKey dan DynamoDBRangeKey. Selain itu, untuk atribut kunci nonprimer, jika nama properti di kelas Anda dan atribut tabel terkait yang ingin Anda petakan tidak sama, Anda harus mendefinisikan pemetaan dengan menambahkan atribut DynamoDBProperty secara eksplisit.

    Dalam contoh sebelumnya, properti Id dipetakan ke kunci primer dengan nama yang sama, dan properti BookAuthors dipetakan ke atribut Authors dalam tabel ProductCatalog.

  • Pemetaan default—Secara default, model persistensi objek memetakan properti kelas ke atribut dengan nama yang sama dalam tabel.

    Dalam contoh sebelumnya, properti Title dan ISBN dipetakan ke atribut dengan nama yang sama dalam tabel ProductCatalog.

Anda tidak perlu memetakan setiap properti kelas tunggal. Anda mengidentifikasi properti ini dengan menambahkan atribut DynamoDBIgnore. Ketika Anda menyimpan instans Book ke tabel, DynamoDBContext tidak menyertakan properti CoverPage. Instans tersebut juga tidak mengembalikan properti ini saat Anda mengambil instans buku.

Anda dapat memetakan properti dari. NETtipe primitif seperti int dan string. Anda juga dapat memetakan setiap jenis data arbitrer selama Anda memberikan konverter yang sesuai untuk memetakan data arbitrer ke salah satu jenis DynamoDB. Untuk mempelajari cara memetakan jenis arbitrer, lihat Memetakan data arbitrer dengan DynamoDB menggunakan model persistensi objek AWS SDK for .NET.

Model persistensi objek mendukung penguncian optimis. Selama operasi pembaruan, model ini memastikan bahwa Anda memiliki salinan terbaru dari item yang akan Anda perbarui. Untuk informasi selengkapnya, lihat Penguncian optimis menggunakan DynamoDB dan model persistensi objek AWS SDK for .NET.

Untuk informasi selengkapnya, lihat topik di bawah.

Jenis data yang didukung

Model persistensi objek mendukung satu set primitif. NETtipe data, koleksi, dan tipe data arbitrer. Model ini mendukung jenis data primitif berikut.

  • bool

  • byte

  • char

  • DateTime

  • decimal

  • double

  • float

  • Int16

  • Int32

  • Int64

  • SByte

  • string

  • UInt16

  • UInt32

  • UInt64

Model ketekunan objek juga mendukung. NETjenis koleksi. DynamoDBContextmampu mengkonversi jenis koleksi beton dan sederhana Plain Old CLR Objects (POCOs).

Tabel berikut merangkum pemetaan sebelumnya. NETjenis ke jenis DynamoDB.

. NETtipe primitif Jenis DynamoDB

Semua jenis angka

N (jenis angka)

Semua jenis string

S (jenis string)

MemoryStream, byte []

B (jenis biner)

bool N (jenis angka). 0 mewakili false dan 1 mewakili true.
Jenis koleksi Jenis BS (kumpulan biner), jenis SS (kumpulan string), dan jenis NS (kumpulan angka).
DateTime S (jenis string). DateTimeNilai-nilai disimpan sebagai ISO -8601 string diformat.

Model persistensi objek juga mendukung jenis data arbitrer. Namun, Anda harus menyediakan kode konverter untuk memetakan jenis kompleks ke jenis DynamoDB.

catatan
  • Nilai biner kosong didukung.

  • Pembacaan nilai string kosong didukung. Nilai atribut string kosong didukung dalam nilai atribut string dari jenis Set saat menulis ke DynamoDB. Nilai atribut string kosong dari jenis string dan nilai string kosong dalam jenis Daftar atau Peta dihilangkan dari permintaan tulis