.NET: modello di persistenza degli oggetti - Amazon DynamoDB

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

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 ProductCatalogaggiungendo 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 e DynamoDBRangeKey. 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'attributo DynamoDBProperty.

    Nell'esempio precedente, la proprietà Id viene mappata alla chiave primaria con lo stesso nome e la proprietà BookAuthors viene mappata all'attributo Authors nella tabella ProductCatalog.

  • 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 e ISBN vengono mappate agli attributi con lo stesso nome nella tabella ProductCatalog.

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

N (tipo numero)

Tutti i tipi stringa

S (tipo stringa)

MemoryStream, byte []

B (tipo binario)

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