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
Gestire la cancellazione di una richiesta in streaming da Blazor
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Creare una libreria CSS universale: Cards
Disabilitare automaticamente un workflow di GitHub (parte 2)
Recuperare App Service cancellati su Azure
Utilizzare Copilot con Azure Cosmos DB
Proteggere le risorse Azure con private link e private endpoints
Usare il colore CSS per migliorare lo stile della pagina
Path addizionali per gli asset in ASP.NET Core MVC
Aggiornare a .NET 9 su Azure App Service
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON