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
Generare file per il download da Blazor WebAssembly
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Usare le variabili per personalizzare gli stili CSS
C# 12: Cosa c'è di nuovo e interessante
Configurare policy CORS in Azure Container Apps
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Eseguire una GroupBy per entity in Entity Framework
Implementare il throttling in ASP.NET Core
Gestire i null nelle reactive form tipizzate di Angular
Evitare il flickering dei componenti nel prerender di Blazor 8
Load test di ASP.NET Core con k6
Gestione degli environment per il deploy con un workflow di GitHub
I più letti di oggi
- Evitare il flickering dei componenti nel prerender di Blazor 8
- Rilasciata la Beta 2 di Visual Studio 2008
- tra pochi minuti inizia la keynote della seconda giornata. seguila live su http://aspitalia.com/mix-11 #mix11
- .@dbochicchio ora su #aspnetcore 2 a #netconfit https://aspit.co/netconf-17
- Utilizzare angular-cli per creare una direttiva in Angular 2
- Windows Vista: il ritorno di WinFS con la beta1
- .@CristianCivera tra poco su #azure con i suoi tips&tricks per lo sviluppatore web: https://aspit.co/web15-live #aspilive
- Le novità di C# 10