Quando mappiamo una tabella del database verso una classe, in genere mappiamo le colonne verso le proprietà. Tuttavia esistono casi in cui le proprietà sono in sola lettura. In questi casi in genere si utilizza un attributo privato per mantenere il valore mappato sulla colonna.
Per mappare una colonna verso un attributo privato della classe dobbiamo utilizzare le API di mapping come nel seguente caso.
class MyContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Person>() .Property(b => b.Name) .HasField("_name"); } } class Person { private string _name; public string Name { get { return _name; } } }
In questo caso, la classe Person ha una proprietà Name in sola lettura e un campo privato _name che ne contiene il valore. Nel codice di mapping specifichiamo che mappiamo la colonna del database con la proprietà Name, ma in realtà per memorizzare il dato sfruttiamo l'attributo privato tramite il metodo HasField.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare le collection expression in C#
Definire stili a livello di libreria in Angular
Inizializzare i container in Azure Container Apps
Usare le collection expression per inizializzare una lista di oggetti in C#
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Utilizzare database e servizi con gli add-on di Container App
Eseguire attività pianificate con Azure Container Jobs
Miglioramenti agli screen reader e al contrasto in Angular
Usare una container image come runner di GitHub Actions
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Gestire la cancellazione di una richiesta in streaming da Blazor
Creare un webhook in Azure DevOps
I più letti di oggi
- Gestire la documentazione di più versioni della stessa API su ASP.NET Core 2.1
- Implementare il throttling in ASP.NET Core
- Sviluppare applicazioni per Windows 8 con HTML e JavaScript
- ASP.NET 4.5 e ASP.NET MVC 4 in C# e VB
- Utilizzare il Table-Splitting per caricare i campi di una tabella in lazy loading con Entity framework
- Entity Framework 4 in Action
- Visual Basic 2010
- HTML5 - Espresso
- ASP.NET 4 in C# e VB