Entity Framework - Panoramica
Cos'è Entity Framework?
Entity Framework è stato rilasciato per la prima volta nel 2008, il principale mezzo di interazione di Microsoft tra le applicazioni .NET e i database relazionali. Entity Framework è un Object Relational Mapper (ORM) che è un tipo di strumento che semplifica il mapping tra gli oggetti nel software alle tabelle e alle colonne di un database relazionale.
Entity Framework (EF) è un framework ORM open source per ADO.NET che fa parte di .NET Framework.
Un ORM si occupa di creare connessioni al database ed eseguire comandi, oltre a prendere i risultati delle query e materializzare automaticamente quei risultati come oggetti dell'applicazione.
Un ORM aiuta anche a tenere traccia delle modifiche a quegli oggetti e, quando richiesto, le manterrà anche nel database.
Perché Entity Framework?
Entity Framework è un ORM e gli ORM mirano ad aumentare la produttività dello sviluppatore riducendo l'attività ridondante di persistenza dei dati utilizzati nelle applicazioni.
Entity Framework può generare i comandi di database necessari per leggere o scrivere dati nel database ed eseguirli per te.
Se stai eseguendo query, puoi esprimere le tue query sugli oggetti del tuo dominio usando LINQ to Entity.
Entity Framework eseguirà la query pertinente nel database e quindi materializzerà i risultati in istanze degli oggetti di dominio affinché tu possa lavorare all'interno della tua app.
Ci sono altri ORM sul mercato come NHibernate e LLBLGen Pro. La maggior parte degli ORM in genere associa i tipi di dominio direttamente allo schema del database.
Entity Framework ha un livello di mapping più granulare in modo da poter personalizzare i mapping, ad esempio, mappando la singola entità a più tabelle di database o anche più entità a una singola tabella.
Entity Framework è la tecnologia di accesso ai dati consigliata da Microsoft per le nuove applicazioni.
ADO.NET sembra riferirsi direttamente alla tecnologia per set di dati e tabelle di dati.
Entity Framework è il luogo in cui vengono effettuati tutti gli investimenti in avanti, cosa che accade già da diversi anni.
Microsoft consiglia di utilizzare Entity Framework su ADO.NET o LINQ to SQL per tutti i nuovi sviluppi.
Modello concettuale
Per gli sviluppatori che sono abituati allo sviluppo incentrato sul database, il cambiamento più grande con Entity Framework è che ti consente di concentrarti sul tuo dominio aziendale. Che cosa vuoi che la tua applicazione faccia senza essere limitato da ciò che il database è in grado di fare?
Con Entity Framework, il punto focale viene definito modello concettuale. È un modello degli oggetti nella tua applicazione, non un modello del database che utilizzi per rendere persistenti i dati dell'applicazione.
Il tuo modello concettuale potrebbe essere allineato con lo schema del tuo database o potrebbe essere molto diverso.
Puoi utilizzare un Visual Designer per definire il tuo modello concettuale, che può quindi generare le classi che utilizzerai alla fine nella tua applicazione.
Puoi semplicemente definire le tue classi e usare una funzionalità di Entity Framework chiamata Code First. Quindi Entity Framework comprenderà il modello concettuale.
In ogni caso, Entity Framework risolve come passare dal modello concettuale al database. Quindi, puoi eseguire query sugli oggetti del tuo modello concettuale e lavorare direttamente con essi.
Caratteristiche
Di seguito sono riportate le funzionalità di base di Entity Framework. Questo elenco viene creato in base alle funzionalità più importanti e anche dalle domande frequenti su Entity Framework.
- Entity Framework è uno strumento Microsoft.
- Entity Framework è in fase di sviluppo come prodotto Open Source.
- Entity Framework non è più legato o dipendente dal ciclo di rilascio di .NET.
- Funziona con qualsiasi database relazionale con un provider Entity Framework valido.
- Generazione di comandi SQL da LINQ a Entities.
- Entity Framework creerà query con parametri.
- Tiene traccia delle modifiche agli oggetti in memoria.
- Permette di inserire, aggiornare e cancellare la generazione dei comandi.
- Funziona con un modello visivo o con le tue classi.
- Entity Framework ha il supporto per le procedure memorizzate.