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
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Short-circuiting della Pipeline in ASP.NET Core
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare politiche di resiliency con Azure Container App
Utilizzare Model as a Service su Microsoft Azure
Criptare la comunicazione con mTLS in Azure Container Apps
Limitare le richieste lato server con l'interactive routing di Blazor 8
Gestire i null nelle reactive form tipizzate di Angular
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Generare file PDF da Blazor WebAssembly con iText
Copiare automaticamente le secret tra più repository di GitHub