Descrizione
In questo articolo, vedremo come gestire un dato di tipo “Json” in un database Sql Server , utilizzando il linguaggio di programmazione C# ed il Framework Entity Framework Core 9.
L’articolo vuole illustrare la tecnica di salvataggio di un dato, di tipo Json e la relativa lettura, il tutto tramite un progetto di tipo Windows Application in
Stesura del codice
Supponiamo di avere due tabelle, una denominata Anagrafica e l’altra Prodotti, in cui nella tabella Prodotti, vorremmo mettere il valore json dell’entità Anagrafica nel campo “Note”.
Di seguito si riporta l’istruzione Insert per l’inserimento del dato, dove nel campo “Note”, verrà inserito un valore di tipo Json relativo all’entità Anagrafica.
C#
Anagrafica anagrafica = new Anagrafica();
anagrafica.Nome = "Luigi";
anagrafica.Cognome = "Cristaldi";
Prodotti prod = new Prodotti () {
Descrizione = "Sistemista",
Note = JsonSerializer.Serialize(new Anagrafica() { Nome = anagrafica.Nome, Cognome
= anagrafica.Cognome })
};
DatiContext dati = new DatiContext();
dati.Anagraficas.Add(anagrafica);
dati.Prodottiis.Add(prod);
dati.SaveChanges();
SELECT TOP (1000) [Descrizione], [Note]
FROM [Dati].[dbo].[ Prodotti]
WHERE ISJSON(COALESCE([Note], '{}')) = 1
AND JSON_VALUE(COALESCE([Note], '{}'), '$.Nome') = 'luigi';
SELECT TOP (1000) [Descrizione], [Note]
FROM [Dati].[dbo].[Prodotti]
WHERE ISJSON([Note]) = 1
AND JSON_VALUE([Note], '$.Nome') = 'luigi'
AND [Note] IS NOT NULL
AND [Note] <> '';
C#
DatiContext dati = new DatiContext();
var jsonProdotti = dati.Prodotti
.Where(p => p.Note.Contains("\"nome\":\"Luigi\"")).ToList();
Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.
Nessun commento:
Posta un commento