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
Utilizzare i primary constructor di C# per inizializzare le proprietà
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Semplificare il deployment di siti statici con Azure Static Web App
Eseguire una GroupBy per entity in Entity Framework
Potenziare Azure AI Search con la ricerca vettoriale
Effettuare delete massive con Entity Framework Core 7
Utilizzare i primary constructor in C#
Disabilitare automaticamente un workflow di GitHub
Gestire i null nelle reactive form tipizzate di Angular
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare Model as a Service su Microsoft Azure
I più letti di oggi
- Impostare un elemento come ridimensionabile tramite CSS
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- Personalizzare l'errore del rate limiting middleware in ASP.NET Core
- Accedere alla console di una Azure Container App
- Modificare i metadati nell'head dell'HTML di una Blazor Web App
- Gli oggetti CallOut di Expression Blend 4.0
- SQL Server 2005 December CTP
- Sfruttare le nuove tipologie di input di HTML5 con ASP.NET 4.0
- Upload da una pagina web con Dundas Upload