Ricerca avanzata
Autore: Stefano Mostarda
C# 11 introduce la nuova parola chiave required che possiamo anteporre davanti a proprietà e campi di una classe per specificare che questi devono obbligatoriamente essere inizializzati da un costruttore o da un object initializer. Grazie a questa funzionalità, i campi ...
Dalla versione 2016, Sql Server supporta le Memory-Optimized table. Si tratta di tabelle che Sql Server mantiene in memoria per velocizzarne l'accesso e di cui tiene una copia sul disco solo per scopi di persistenza dei dati. Dal punto di vista del codice SQL, non ci sono ...
Quando serializziamo o deserializziamo un oggetto con la classe JsonSerializer di System.Text.Json, tra i vari parametri che possiamo passare ci sono le opzioni di serializzazione espresse tramite un'istanza della classe JsonSerializerOptions. Quando dobbiamo usare la classe ...
Quando invochiamo il metodo SaveChanges/SaveChangesAsync, EF Core genera i comandi SQL necessari ad aggiornare il database e, in caso di errore, solleva un'eccezione di tipo DbUpdateException che nella proprietà InnerException espone l'eccezione del provider ADO.NET. Tramite ...
Il metodo statico Convert.ChangeType permette di ottenere un oggetto di un determinato tipo partendo dal valore dell'oggetto di un altro tipo a patto che il valore sia convertibile e che il tipo sorgente implementi l'interfaccia IConvertible. Per fare un esempio, il metodo può ...
Sono anni che non scrivo sul blog, ma voglio interrompere il digiuno per parlare di un argomento che mi sta sempre a cuore: Entity Framework e più in particolare Entity Framework Core. Il titolo del post è un sunto di diverse discussioni che ho avuto negli ultimi 6 mesi. L'ultima...
Quando lavoriamo con un database, una delle operazioni più comuni è il recupero di record che corrispondono a una lista di codici. Spesso questi campi codice non sono la chiave primaria della tabella in quanto si preferisce una chiave surrogata. Supponiamo di avere una tabella ...
Uno dei pattern più comuni in C# è quello che prevede l'utilizzo del blocco using quando si istanzia un oggetto che implementa l'interfaccia IDisposable e lo si vuole distruggere una volta arrivati alla fine del blocco. A partire da C# 8, una classe può implementare l'interfaccia...
I metodi LINQ *OrDefault (FirstOrDefault o SingleOrDefault solo per citarne alcuni) prevedono che se la query non restituisca un elemento, allora venga restituito il valore di default del tipo del'elemento. Per fare un esempio, se cerchiamo un elemento in una lista di classi e l'...