LINQ ed Entity Data Model
LINQ to Entities consente agli sviluppatori di creare query flessibili e fortemente tipizzate sul contesto dell'oggetto Entity Data Model (EDM) utilizzando espressioni LINQ e gli operatori di query standard LINQ. Ciò consente a un utente di scrivere query fortemente tipizzate e componibili in una sintassi simile a Transact-SQL, direttamente dall'ambiente di sviluppo. Le query sono espresse nel linguaggio di programmazione stesso e non come valori letterali stringa nel codice dell'applicazione, come nel caso di applicazioni scritte in Microsoft .NET Framework versione 2.0. Eventuali errori di sintassi ed errori in nomi di membri e tipi di dati verranno rilevati dal compilatore e segnalati in fase di compilazione, riducendo i possibili problemi relativi ai tipi tra il modello EDM e l'applicazione.
Quando un'applicazione utilizza EDM, il mapping tra il modello di dati concettuale e l'origine dati sottostante viene gestito automaticamente. Uno sviluppatore può creare un'applicazione LINQ to Entities senza disporre di alcuna nozione relativa all'origine dati sottostante o ai metodi specifici per l'esecuzione di query sull'origine dati. In questo modo è inoltre possibile modificare l'origine dati back-end senza apportare alcuna modifica all'applicazione client, in quanto la maggior parte delle funzionalità specifiche del database viene gestita da Object Services. Per ulteriori informazioni, vedere Cenni preliminari su Object Services (Entity Framework).
Le query LINQ to Entities utilizzano l'infrastruttura di Object Services. La classe ObjectContext è la classe primaria per l'interazione con EDM come oggetti CLR. Lo sviluppatore costruisce un'istanza di ObjectQuery tramite ObjectContext. La classe generica ObjectQuery rappresenta una query che restituisce un'istanza o un insieme di entità tipizzate. Gli oggetti entità restituiti da ObjectQuery vengono registrati dal contesto dell'oggetto e possono essere aggiornati utilizzando il metodo SaveChanges.