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
Usare lo spread operator con i collection initializer in C#
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Come migrare da una form non tipizzata a una form tipizzata in Angular
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Limitare le richieste lato server con l'interactive routing di Blazor 8
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Assegnare un valore di default a un parametro di una lambda in C#
Sfruttare al massimo i topic space di Event Grid MQTT
Definire stili a livello di libreria in Angular
Utilizzare un service principal per accedere a Azure Container Registry
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Generare file PDF da Blazor WebAssembly con iText