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
Ottenere un token di accesso per una GitHub App
Combinare Container Queries e Media Queries
Creare una libreria CSS universale: Clip-path
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Eliminare una project wiki di Azure DevOps
Supportare la sessione affinity di Azure App Service con Application Gateway
Change tracking e composition in Entity Framework
Testare l'invio dei messaggi con Event Hubs Data Explorer
Gestire il colore CSS con HWB
Disabilitare automaticamente un workflow di GitHub (parte 2)
Utilizzare QuickGrid di Blazor con Entity Framework