Provider EntityClient per Entity Framework

EntityClient è un provider di dati usato dalle applicazioni Entity Framework per accedere a dati descritti in un modello concettuale. Per informazioni sui modelli concettuali, vedere Modellazione e mapping. EntityClient usa altri provider di dati .NET Framework per accedere all'origine dati, ad esempio il provider di dati .NET Framework per SQL Server (SqlClient) in caso di accesso a un database SQL Server. Per informazioni sul provider SqlClient, vedere SqlClient per Entity Framework. Il provider EntityClient viene implementato nello spazio dei nomi System.Data.EntityClient.

Gestione di connessioni

Basato su provider di dati ADO.NET specifici per l'archiviazione, Entity Framework fornisce una classe EntityConnection a un provider di dati e a un database relazionale sottostanti. Per costruire un oggetto EntityConnection, è necessario fare riferimento a un set di metadati che contiene i mapping e i modelli necessari, nonché a una stringa di connessione e a un nome di provider di dati specifici per l'archiviazione. Dopo aver messo a punto una classe EntityConnection, è possibile accedere alle entità tramite le classi generate dal modello concettuale.

È possibile specificare una stringa di connessione nel file app.config.

System.Data.EntityClient include anche la classe EntityConnectionStringBuilder. Questa classe consente agli sviluppatori di creare a livello di codice stringhe di connessione sintatticamente corrette, nonché di analizzare e ricompilare le stringhe di connessione esistenti, usando le proprietà e i metodi della classe.

Creazione di query

Entity SQL è un linguaggio SQL indipendente dall'archiviazione che interagisce direttamente con gli schemi di entità concettuali e supporta concetti EDM quali l'ereditarietà e le relazioni. La classe EntityCommand consente di eseguire un comando Entity SQL su un modello di entità. Quando si costruiscono oggetti EntityCommand, è possibile specificare un nome di stored procedure o un testo della query. Entity Framework funziona con provider di dati specifici per l'archiviazione per convertire il linguaggio Entity SQL generico in query specifiche per l'archiviazione. Per altre informazioni sulla scrittura di query Entity SQL, vedere Linguaggio Entity SQL.

Nell'esempio seguente viene creato un oggetto EntityCommand e viene assegnato il testo di una query Entity SQL alla proprietà EntityCommand.CommandText. Questa query Entity SQL consente di richiedere i prodotti ordinati in base al prezzo di listino nel modello concettuale. Il codice seguente non comporta alcuna conoscenza del modello di archiviazione.

EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
 FROM AdventureWorksEntities.Product AS p
 ORDER BY p.ListPrice";

Esecuzione di query

Quando una query viene eseguita, viene analizzata e convertita in un albero dei comandi canonici. Tutte le elaborazioni successive vengono eseguite nell'albero dei comandi. L'albero dei comandi costituisce il mezzo di comunicazione tra System.Data.EntityClient e il provider di dati .NET Framework sottostante, ad esempio System.Data.SqlClient.

EntityDataReader espone i risultati dell'esecuzione di un oggetto EntityCommand su un modello concettuale. Per eseguire il comando che restituisce EntityDataReader, chiamare ExecuteReader. EntityDataReader implementa IExtendedDataRecord per descrivere risultati completamente strutturati.

Gestione delle transazioni

In Entity Framework è possibile usare le transazioni in modo esplicito e in modo automatico. Le transazioni automatiche usano lo spazio dei nomi System.Transactions e le transazioni esplicite usano la classe EntityTransaction.

Per aggiornare i dati esposti tramite un modello concettuale, vedere Procedura: Gestire le transazioni in Entity Framework.

In questa sezione

Procedura: Eseguire una query che restituisce risultati PrimitiveType

Procedura: Eseguire una query che restituisce risultati StructuralType

Procedura: Eseguire una query che restituisce risultati RefType

Procedura: Eseguire una query che restituisce tipi complessi

Procedura: Eseguire una query che restituisce raccolte annidate

Procedura: Eseguire una query Entity SQL con parametri tramite EntityCommand

Procedura: Eseguire una stored procedure con parametri tramite EntityCommand

Procedura: Eseguire una query polimorfica

Procedura: Esplorare relazioni con l'operatore Navigate

Vedi anche