Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Lavorare con. NETmodello di persistenza degli oggetti e DynamoDB
AWS SDK for .NET Fornisce un modello di persistenza degli oggetti che consente di mappare le classi lato client alle tabelle Amazon DynamoDB. Ogni istanza dell'oggetto viene quindi mappata a un elemento nelle tabelle corrispondenti. Per salvare gli oggetti lato client nelle tabelle, il modello di persistenza degli oggetti fornisce la classe DynamoDBContext
, un punto di ingresso a DynamoDB. Questa classe fornisce una connessione a DynamoDB e consente di accedere alle tabelle, eseguire CRUD varie operazioni ed eseguire query.
Il modello di persistenza degli oggetti fornisce un insieme di attributi per mappare le classi lato client alle tabelle e le proprietà o i campi agli attributi di tabella.
Nota
Il modello di persistenza degli oggetti non fornisce un modo API per creare, aggiornare o eliminare tabelle. Esso fornisce solo operazioni di dati. È possibile utilizzare solo il AWS SDK for .NET livello inferiore API per creare, aggiornare ed eliminare tabelle.
L'esempio seguente mostra come funziona il modello di persistenza degli oggetti. Inizia con tabella ProductCatalog
. La tabella dispone di Id
come chiave primaria.
ProductCatalog(Id, ...)
Si supponga di avere una classe Book
con le proprietà Title
, ISBN
e Authors
. È possibile mappare la classe Book
alla tabella ProductCatalog
aggiungendo gli attributi definiti dal modello di persistenza degli oggetti, come mostrato nel seguente esempio di codice C#.
Esempio
[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; } }
Nell'esempio precedente, l'attributo DynamoDBTable
associa la classe Book
alla tabella ProductCatalog
.
Il modello di persistenza degli oggetti supporta sia la mappatura esplicita che quella predefinita tra le proprietà della classe e gli attributi della tabella.
-
Mappatura esplicita: per mappare una proprietà a una chiave primaria, è necessario utilizzare gli attributi del modello di persistenza dell'oggetto
DynamoDBHashKey
eDynamoDBRangeKey
. Inoltre, per gli attributi della chiave non primaria, se il nome di una proprietà nella classe e l'attributo tabella corrispondente a cui si desidera mapparlo non sono gli stessi, è necessario definire la mappatura aggiungendo esplicitamente l'attributoDynamoDBProperty
.Nell'esempio precedente, la proprietà
Id
viene mappata alla chiave primaria con lo stesso nome e la proprietàBookAuthors
viene mappata all'attributoAuthors
nella tabellaProductCatalog
. -
Mappatura predefinita: per impostazione predefinita, il modello di persistenza degli oggetti mappa le proprietà della classe agli attributi con lo stesso nome nella tabella.
Nell'esempio precedente, le proprietà
Title
eISBN
vengono mappate agli attributi con lo stesso nome nella tabellaProductCatalog
.
Non è necessario mappare ogni singola proprietà della classe. Queste proprietà vengono identificate aggiungendo l'attributo DynamoDBIgnore
. Quando si salva un'istanza Book
nella tabella, DynamoDBContext
non include la proprietà CoverPage
. Inoltre, non restituisce questa proprietà quando si recupera l'istanza del libro.
È possibile mappare le proprietà di. NETtipi primitivi come int e string. È inoltre possibile mappare qualsiasi tipo di dati arbitrari purché si fornisca un convertitore appropriato per mappare i dati arbitrari a uno dei tipi DynamoDB. Per informazioni sulla mappatura di tipi arbitrari, consulta Mappatura di dati arbitrari con DynamoDB utilizzando il modello di persistenza degli oggetti AWS SDK for .NET.
Il modello di persistenza degli oggetti supporta il blocco ottimistico. Durante un'operazione di aggiornamento, questo garantisce di disporre della copia più recente dell'elemento che si sta per aggiornare. Per ulteriori informazioni, consulta Blocco ottimistico con DynamoDB e il modello di persistenza degli oggetti AWS SDK for .NET.
Per ulteriori informazioni, consulta gli argomenti riportati di seguito.
Argomenti
- Tipi di dati supportati
- Attributi DynamoDB di. NETmodello di persistenza degli oggetti
- ynamoDBContext Classe D del. NETmodello di persistenza degli oggetti
- Blocco ottimistico con DynamoDB e il modello di persistenza degli oggetti AWS SDK for .NET
- Mappatura di dati arbitrari con DynamoDB utilizzando il modello di persistenza degli oggetti AWS SDK for .NET
Tipi di dati supportati
Il modello di persistenza degli oggetti supporta un insieme di primitive. NETtipi di dati, raccolte e tipi di dati arbitrari. Il modello supporta i seguenti tipi di dati primitivi:
-
bool
-
byte
-
char
-
DateTime
-
decimal
-
double
-
float
-
Int16
-
Int32
-
Int64
-
SByte
-
string
-
UInt16
-
UInt32
-
UInt64
Il modello di persistenza degli oggetti supporta anche. NETtipi di raccolta. DynamoDBContext
è in grado di convertire tipi di raccolta concreti e semplici Plain Old CLR Objects (POCOs).
La tabella seguente riassume la mappatura della precedente. NETtipi ai tipi DynamoDB.
. NETtipo primitivo | Tipo DynamoDB |
---|---|
Tutti i tipi di numeri |
|
Tutti i tipi stringa |
|
MemoryStream, byte [] |
|
bool | N (tipo di numero). 0 rappresenta false e 1 rappresenta true. |
Tipi di raccolta | Tipo BS (set binario), tipo SS (set stringa) o tipo NS (set numerico) |
DateTime | S (tipo stringa). I DateTime valori vengono memorizzati come ISO -8601 stringhe formattate. |
Il modello di persistenza degli oggetti supporta anche tipi di dati arbitrari. Tuttavia, è necessario fornire il codice del convertitore per mappare i tipi complessi ai tipi DynamoDB.
Nota
-
Sono supportati valori Binary vuoti.
-
È supportata la lettura dei valori String vuoti. I valori degli attributi String vuoti sono supportati all'interno dei valori degli attributi di stringa del tipo Set durante la scrittura su DynamoDB. I valori degli attributi String vuoti del tipo String e i valori String vuoti contenuti nel tipo List o Map vengono eliminati dalle richieste di scrittura