Entity Framework Core Tutorial Panoramica
introduzione
Entity Framework Core è una versione leggera, estensibile e multipiattaforma di ORM (Object-Relational Mapper) di Microsoft, Entity Framework è la piattaforma ufficiale di accesso ai dati per Microsoft.
- Poiché .NET evolve verso un ambiente multipiattaforma più leggero, Entity Framework sta facendo la stessa transizione.
- In altre parole, questo non era semplicemente un aggiornamento dall'ultimo Entity Framework (EF6), ma è un diverso tipo di Entity Framework.
- Include un set di API .NET per l'esecuzione dell'accesso ai dati nella tua applicazione.
Storia
- Il team EF ha apportato alcune modifiche significative su Entity Framework 6 e lo ha chiamato EF7, ma in seguito lo hanno rinominato in EF Core.
- EF Core è stato rilasciato per la prima volta alla fine di giugno del 2016 dopo oltre 2 anni di sforzi, questa prima versione è stata seguita da una grande quantità di modifiche con EF Core 2, che è stato rilasciato un anno dopo insieme a .NET Core e ASP.NET Core.
- EF Core 2 è visto da molti come la prima versione solida, sebbene EF Core 1 sia ancora supportato.
Perché Entity Framework Core
- EF Core è un ORM (object-relational mapper) che consente agli sviluppatori .NET di lavorare con un database utilizzando oggetti .NET.
- È leggero, estensibile e può essere utilizzato su varie piattaforme
- Elimina la necessità della maggior parte del codice di accesso ai dati che gli sviluppatori di solito devono scrivere.
- Entity Framework Core 2 offre più funzionalità di cui molti sviluppatori hanno bisogno nelle versioni precedenti di EF, oltre a nuove innovazioni oltre Entity Framework Core 1.
Provider di database supportati
Entity Framework Core supporta molti provider di database per accedere a diversi database ed eseguire operazioni di database.
- server SQL
- MySQL
- PostgreSQL
- SQLite
- SQL Compact
- In memoria
Più provider può essere trovato qui: https://docs.microsoft.com/en-us/ef/core/providers/
EF Core 2 Nuove funzionalità
LINQ
- Le query LINQ sono state rese più efficienti e i metodi di query LINQ saranno in grado di diventare parte dell'SQL eseguito sul database, anziché essere lasciati per la valutazione lato client post-query.
filtri
- È ora possibile definire i filtri di query nel tuo DbContext per le singole entità e questi filtri verranno applicati a tutte le query eseguite dall'app prima che la query venga inviata al database.
GroupJoin Improvements
- Se si utilizza GroupJoin nelle query, l'SQL generato è molto più intelligente in EF Core 2 di quanto non fosse nella prima versione di EF Core.
Mapping
- Mappatura delle funzioni scalari del database allo stub del metodo in modo che possano essere utilizzate nelle query LINQ e tradotte in SQL.
- In EF Core 1, non esisteva alcun supporto per oggetti valore, ma ora in EF Core 2, abbiamo qualcosa di meglio che sostituisce tipi complessi e si chiama entità di proprietà.
Divisione della tabella
- La suddivisione delle tabelle è ora possibile per mappare due o più tipi di entità alla stessa tabella in cui le colonne chiave primaria saranno condivise e ogni riga corrisponderà a due o più entità.
DbContext pooling
- Il pool di DbContext è una funzionalità di prestazioni davvero interessante che consente a EF Core in fase di esecuzione di utilizzare un pool di istanze DbContext pre-create, anziché creare un nuovo contesto ogni volta.
Altri
- In EF Core, la maggior parte della logica usata sotto le copertine non è più nascosta e EF Core è composto da centinaia di servizi che puoi sostituire con le tue versioni e con EF Core 2, ora è molto più facile da dire EF Core come e quando utilizzare le sostituzioni personalizzate per questi servizi.