Nello script #479 abbiamo visto come configurare un value converter già esistente in Entity Framework Core per convertire un enum in una stringa e viceversa durante il colloquio con il database. L'utilizzo del value converter è molto comodo quando dobiamo riusarlo in più parti del codice. Se invece dobbiamo effettuare una conversione semplice e in un solo punto, possiamo anche dichiarare come deve essere fatta la converione direttamente durante la fase di mapping della proprietà.
La conversione viene configurata tramite il metodo HasConversion al quale passiamo in input due lambda che rispettivamente specificano la conversione tra il valore della proprietà del db e viceversa.
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder .Entity<Person>() .Property(e => e.Gender) .HasConversion( v => v.ToString(), v => (Gender)Enum.Parse(typeof(Gender), v)); }
In questo esempio, il campo Gender viene convertito in una stringa quando viene salvato sul database e viene poi riconvertito in un enum, partendo dal valore della stringa salvata in precedenza, quando viene letto dal database.
Come si intuisce da questo codice, l'utilizzo di un value converter inline è scuramente semplice, ma è quasi sempre preferibile crearne uno riutilizzabile.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eliminare i resource group vuoti di Azure via PowerShell
Rendere sticky un elemento HTML in Angular
GRPC vs REST con .NET 5
Tenere traccia di tutte le modifiche ai dati con Entity Framework Core
Sviluppare codice nativo per Windows e Linux con .NET Core
Tradurre in lingua contenuti HTML con i cognitive service
Utilizzare al meglio gli oggetti HTML input sfruttando i nuovi type
Migliorare la nostra produttività con ASP.NET Core e live reload
Gestire il timeout di esecuzione dei task nelle pipeline di Azure DevOps
PWAConf 2020
Eseguire integration test di un progetto ASP.NET Core
Eseguire del codice personalizzato al click di una checkbox in Blazor
I più letti di oggi
- Le novità di Entity Framework Core 5
- Modificare la modalità di esecuzione delle query con Include in Entity Framework Core 5
- Chiamare direttamente un numero di telefono con HTML5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Esecuzione condizionale dei task nelle pipeline YAML di Azure DevOps