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
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Creare una libreria CSS universale - Rotazione degli elementi
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Cancellare una run di un workflow di GitHub
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Escludere alcuni file da GitHub Secret Scanning
Paginare i risultati con QuickGrid in Blazor
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Ordine e importanza per @layer in CSS
Eseguire una query su SQL Azure tramite un workflow di GitHub
I più letti di oggi
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Eseguire script pre e post esecuzione di un workflow di GitHub
- Ballmer inizia la keynote parlando del momento attuale. https://aspit.co/build-13 #bldwin
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare la persistenza che coinvolge un solo oggetto con #entityframework Core 7 https://aspit.co/cey di @sm15455