Una delle operazioni più comuni quando si lavora con un database relazionale è quela di creare view per semplificare la scrittura delle query. Queste view non hanno sempre una chiave primaria e quindi Entity Framework Core non è in grado di identificare singolarmente ogni riga dei dati recuperati con una query. Per questo motivo, fino ad Entity Framework Core 2.0, non era possibile effettuare query sulle view senza chiave primaria. In Entity Framework Core 2.1 è stata aggiunta questa possibilità attraverso la nuova classe DbQuery<T>. Questa classe svolge lo stesso compito di DbSet<T> con la differenza di gestire entity senza chiave primaria. Nel prossimo esempio vediamo come creare le entity e configurarle nel contesto
public class MyContext { public DbSet<Person> People { get; set; } public DbQuery<PersonView> PeopleView { get; set; } } public class Person { public int Id { get; set; } //altre proprietà } public class PersonView { public string FullName { get; set; } public string FullAddress { get; set; } }
Una volta create entity e contesto, possiamo eseguire query sul DbQuery esattamente come fatto su DbSet. Infatti entrambe le classi usano lo stesso provider di traduzione SQL. La sola differenza è che gli oggetti restituiti da DbQuery non entreranno a far parte del change tracker del contesto in quato non hanno un identificativo univoco.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Applicare un filtro per recuperare alcune issue di GitHub
Gestione degli eventi nei Web component HTML
Controllare la telemetria con .NET Aspire
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Creare una libreria CSS universale - Rotazione degli elementi
Evitare memory leaks nelle closure JavaScript
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Esporre un server MCP con Azure API Management
Referenziare un @layer più alto in CSS
Utilizzare l nesting nativo dei CSS
Gestire il routing HTTP in Azure Container App
Gestione delle scrollbar dinamiche in HTML e CSS
I più letti di oggi
- Integrare OpenAI tramite Aspire
- Analizzare il contenuto di una issue con GitHub Models e AI
- Interagire con Azure DevOps tramite MCP Server
- .NET Conference Italia 2025 - Milano
- Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
- The Agentic Day - Milano
- Creare un agente A2Acon Azure Logic Apps