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
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Usare un KeyedService di default in ASP.NET Core 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Implementare il throttling in ASP.NET Core
Usare una container image come runner di GitHub Actions
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Utilizzare i primary constructor di C# per inizializzare le proprietà
Eseguire una query su SQL Azure tramite un workflow di GitHub
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Reactive form tipizzati con modellazione del FormBuilder in Angular
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
I più letti di oggi
- ASP.NET Core Identity 8: è rivoluzione?
- Tutorial ASP.NET Dynamic Data Control
- Accesso dai dati con Entity Framework 7
- Utilizzare la classe XmlDataDocument per leggere un Feed RSS
- Microsoft Security Bulletin MS08-067
- Le novità di ASP.NET 4.5
- Mostrare tutti i cookie creati in fase di debug
- MIX 2011: Tutte le novità dei tool di ASP.NET MVC 3
- Usare il sensore di luminosità ambientale nelle Universal App