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
danDynamoDBRangeKey
. 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 atributDynamoDBProperty
secara eksplisit.Dalam contoh sebelumnya, properti
Id
dipetakan ke kunci primer dengan nama yang sama, dan propertiBookAuthors
dipetakan ke atributAuthors
dalam tabelProductCatalog
. -
Pemetaan default—Secara default, model persistensi objek memetakan properti kelas ke atribut dengan nama yang sama dalam tabel.
Dalam contoh sebelumnya, properti
Title
danISBN
dipetakan ke atribut dengan nama yang sama dalam tabelProductCatalog
.
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.
Topik
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. DynamoDBContext
mampu 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 |
|
Semua jenis string |
|
MemoryStream, byte [] |
|
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). DateTime Nilai-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