Azure Cosmos DB è un database distribuito interamente gestito che persiste i documenti in formato JSON. Oltre ad alcuni campi obbligatori o riservati presenti nel grafo, come id e _ts, il resto può contenere qualsiasi struttura semplice o complessa di oggetti, la quale viene interamente indicizzata, se non diversamente indicata.
L'SDK per .NET che abbiamo a disposizione utilizza la famosa libreria Json.NET per serializzare e deserializzare un grafo, la quale permette di utilizzare gli attributi per alterare il comportamento. Delle volte però gli attributi non sono sufficienti oppure non vogliamo sporcare il dominio con questo genere di informazioni. Nelle ultime versioni del client, fortunatamente, per il .NET Framework e per .NET Standard, è stata inserita la facoltà di personalizzare il motore tramite un oggetto personalizzato di JsonSerializerSettings.
Nell'esempio seguente viene mostrato come possiamo creare il DocumentClient passando delle impostazioni che gestiscono se marcare i tipi sugli oggetti, come gestire i valori nulli e come trattare i tipi enumerati.
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, NullValueHandling = NullValueHandling.Include, Converters = {new StringEnumConverter()} }; var client = new DocumentClient(serviceEndPoint, settings);
Queste sono alcune delle possibilità che ci sono offerte. Per le altre rimandiamo alla documentazione ufficiale.
https://www.newtonsoft.com/json/help/html/SerializingJSON.htm
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Testare l'invio dei messaggi con Event Hubs Data Explorer
Eliminare una project wiki di Azure DevOps
Managed deployment strategy in Azure DevOps
.NET Conference Italia 2024
.NET Aspire per applicazioni distribuite
Introduzione ai web component HTML
Aggiornare a .NET 9 su Azure App Service
Gestire il colore CSS con HWB
Utilizzare DeepSeek R1 con Azure AI
Ottenere un token di accesso per una GitHub App
I più letti di oggi
- Eseguire query in contemporanea con EF
- Fissare una versione dell'agent nelle pipeline di Azure DevOps
- .NET Aspire per applicazioni distribuite
- Utilizzare Locust con Azure Load Testing
- Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
- Repaint, Reflow e Compositing: Come Funziona il Rendering nel Browser
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!