Condividi tramite


Provider EntityClient per Entity Framework

EntityClient è un provider di dati utilizzato dalle applicazioni Entity Framework per accedere a dati descritti in un Entity Data Model (EDM). Per informazioni sui modelli EDM, vedere Modellazione dei dati in Entity Framework. EntityClient utilizza 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 .Provider di dati .NET Framework per SQL Server (SqlClient) per Entity Framework. Il provider EntityClient viene implementato nello spazio dei nomi System.Data.EntityClient.

Gestione di connessioni

Entity Framework è compilato in base a provider di dati ADO.NET specifici dell'archiviazione fornendo un oggetto 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 dell'archiviazione. Dopo avere stabilito una connessione (oggetto 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, utilizzando le proprietà e i metodi della classe. Per ulteriori informazioni, vedere Procedura: compilare una stringa di connessione EntityConnection (Entity Framework).

Creazione di query

Il linguaggio Entity SQL è un dialetto SQL indipendente dall'archiviazione che interagisce direttamente con gli schemi di entità concettuali e supporta le funzionalità EDM, quali l'ereditarietà e le relazioni. La classe EntityCommand viene utilizzata per 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 dell'archiviazione per convertire il linguaggio Entity SQL generico in query specifiche dell'archiviazione. Per ulteriori informazioni sulla scrittura di query Entity SQL, vedere Linguaggio Entity SQL.

Nell'esempio seguente viene creato un oggetto EntityCommand e viene assegnato un testo della query Entity SQL alla proprietà System.Data.EntityClient.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 canonico. 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 EDM. Per eseguire il comando che restituisce EntityDataReader, chiamare ExecuteReader. EntityDataReader implementa IExtendedDataRecord per descrivere risultati completamente strutturati. Per ulteriori informazioni, vedere How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework).

Gestione di transazioni

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

Non è possibile utilizzare la sintassi EntityCommand per aggiornare dati esposti tramite un modello EDM (Entity Data Model). È necessario utilizzare Object Services. Per ulteriori informazioni sull'aggiornamento dei dati con Object Services, vedere Procedura: gestire le transazioni di Object Services (Entity Framework).

Vedere anche

Altre risorse

Gestione di connessioni e transazioni (attività di Entity Framework)
ADO.NET Entity Framework
Attività di Entity Framework
Riferimenti alle funzionalità (Entity Framework)
Object Services (Entity Framework)