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à.
.NET: modello di persistenza degli oggetti
Argomenti
- Attributi DynamoDB
- Classe DynamoDBContext
- Tipi di dati supportati
- Blocco ottimistico utilizzando un numero di versione con DynamoDB utilizzando 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
- Operazioni in batch utilizzando il modello di persistenza degli oggetti di AWS SDK for .NET
- Esempio: operazioni CRUD utilizzando il modello di persistenza degli oggetti di AWS SDK for .NET
- Esempio: operazione di scrittura in batch utilizzando il modello di persistenza AWS SDK for .NET degli oggetti
- Esempio: query e scansione in DynamoDB utilizzando il modello di persistenza degli oggetti di AWS SDK for .NET
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 varie operazioni CRUD 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'API per creare, aggiornare o eliminare tabelle. Esso fornisce solo operazioni di dati. Puoi utilizzare solo l'API di AWS SDK for .NET basso livello per creare, aggiornare ed eliminare tabelle. Per ulteriori informazioni, consulta Utilizzo di tabelle DynamoDB in .NET.
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 tipi primitivi .NET 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 utilizzando un numero di versione 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 tipi di dati .NET primitivi 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 i tipi di raccolta .NET. DynamoDBContext
è in grado di convertire tipi di raccolta concreta e Plain Old CLR Objects (POCO) semplici.
Nella tabella seguente viene riepilogata la mappatura dei tipi .NET precedenti ai tipi DynamoDB.
Tipo primitivo .NET | 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 valori DateTime vengono archiviati come stringhe in formato ISO-8601. |
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