La convenzione di mapping di Entity Framework Core mappa automaticamente tutte le proprietà pubbliche con getter e setter verso le colonne con lo stesso nome. Questa convenzione è molto comoda poiché ci permette di mappare gran parte delle nostre entity senza dover scrivere una linea di codice.
Tuttavia esistono casi in cui vogliamo creare proprietà che siano internal (ad esempio la proprietà Password di una entity Utente). Queste proprietà non sono mappate in automatico quindi dobbiamoricordarci di eseguire il mapping in automatico.
public class User { public string Username { get; set; } public string Name { get; set; } internal string Password { get; set; } } internal class BNContext : DbContext { public DbSet<User> Users { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<User>().Property(p => p.Password); } }
Come si può vedere dall'esempio, il codice per mappare la proprietà internal è lo stesso per una proprietà pubblica. Tuttavia, mappare la proprietà internal è importante per due motivi: il primo è che Entity Framework Core non considera la proprietà per le operazioni di scrittura dati (non include la proprietà nelle insert e nelle update); il secondo è che se usiamo la proprietà nelle query, non otteniamo né un errore, né una valutazione in locale, semplicemente tutto ciò che fa riferimento alla poprietà viene ignorato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione alle Container Queries
Anonimizzare i dati sensibili nei log di Azure Front Door
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Disabilitare automaticamente un workflow di GitHub
Creare una libreria CSS universale: Immagini
Migliorare la sicurezza dei prompt con Azure AI Studio
Supportare la sessione affinity di Azure App Service con Application Gateway
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Aggiornare a .NET 9 su Azure App Service
Sfruttare al massimo i topic space di Event Grid MQTT
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Conoscere il rendering Server o WebAssembly a runtime in Blazor