Per default, Entity Framework Core mappa verso il database tutte le entity esposte dal contesto tramite DbSet. Se le entity esposte dai DbSet espongono altre entity (ad esempio se un DbSet espone gli ordini, e un ordine a una proprietà contenente i dettagli) queste vengono automaticamente mappate verso il database.
Tuttavia esistono casi in cui questo processo di mapping automatico non corrisponde alle nostre esigenze. Ad esempio, se abbiamo un oggetto Person che espone una proprietà di tipo InternalInfo che serve solo per scopi interni all'entity dobbiamo fare in modo di non mappare ne la proprietà ne la classe. Per ottenere questo possiamo ricorrere sia agli attributi che al codice. Se ricorriamo agli attributi, basta decorare la classe con l'attributo NotMapped.
public class Person { public InternalInfo Info { get; set; } } [NotMapped] public class InternalInfo { ... }
Se invece vogliamo ricorrere al codice, dobbiamo sfruttare il metodo OnModelCreating del contesto e utilizzando al suo interno il metodo Ignore del ModelBuilder.
public class Person { public InternalInfo Info { get; set; } } public class InternalInfo { ... } class MyContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Ignore<InternalInfo>(); } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Creare una libreria CSS universale: i bottoni
.NET Conference Italia 2024
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Introduzione alle Container Queries
Effettuare il refresh dei dati di una QuickGrid di Blazor
Simulare Azure Cosmos DB in locale con Docker
Path addizionali per gli asset in ASP.NET Core MVC
Gestione dei nomi con le regole @layer in CSS
Collegare applicazioni server e client con .NET Aspire
Eliminare una project wiki di Azure DevOps
I più letti di oggi
- Ricavare l'indirizzo completo della pagina che esegue lo script
- Tutorial ASP.NET
- Windows 7 Installation Fest - Roma, Firenze
- Container & DevOps Day - Online
- .NET Conference Italia 2021 - Online
- .NET Conference Italia 2022 - Milano e Online
- SQL Server 2008 February CTP
- Mono 0.12: verso una nuova implementazione di ASP.NET
- Tutto per portarsi ASP.NET 4.0, Silverlight 4.0 e .NET Framework 4.0 sotto l'ombrellone