Provedor EntityClient para o Entity Framework
O provedor EntityClient é um provedor de dados usado por aplicativos Entity Framework para acessar dados descritos em um modelo conceitual. Para obter informações sobre modelos conceituais, consulte Modelagem e Mapeamento. O EntityClient usa outros provedores de dados .NET Framework para acessar a fonte de dados. Por exemplo, o EntityClient usa o Provedor de Dados .NET Framework para SQL Server (SqlClient) ao acessar um banco de dados do SQL Server. Para obter informações sobre o provedor SqlClient, consulte SqlClient para o Entity Framework. O provedor EntityClient é implementado no namespace System.Data.EntityClient.
Gerenciando conexões
O Entity Framework é compilado sobre provedores de dados ADO.NET específicos do armazenamento, fornecendo uma EntityConnection para o provedor de dados subjacente e o banco de dados relacional. Para construir um objeto EntityConnection, você precisa fazer referência a um conjunto de metadados que contenha os modelos e os mapeamentos necessários, bem como uma cadeia de conexão e um nome do provedor de dados específico ao armazenamento. Uma vez ativado o objeto EntityConnection, as entidades podem ser acessadas por meio de classes geradas a partir do modelo conceitual.
Você pode especificar uma cadeia de conexão no arquivo app.config.
O System.Data.EntityClient também inclui a classe EntityConnectionStringBuilder. Essa classe permite aos desenvolvedores criar, programaticamente, cadeias de conexão com sintaxe correta, bem como analisar e reconstruir cadeias de conexão existentes, usando as propriedades e os métodos da classe.
Criando consultas
A linguagem Entity SQL é um dialeto de SQL independente de armazenamento que funciona diretamente com esquemas conceituais de entidade e dá suporte a conceitos de Modelo de Dados de Entidade, como herança e relações. A classe EntityCommand é usada para executar um comando Entity SQL em um modelo de entidade. Quando você constrói objetos EntityCommand, é possível especificar um nome de procedimento armazenado ou um texto de consulta. O Entity Framework funciona com provedores de dados específicos ao armazenamento para converter a linguagem Entity SQL genérica em consultas específicas ao armazenamento. Para obter mais informações sobre como escrever consultas Entity SQL, consulte Linguagem Entity SQL.
O exemplo a seguir cria um objeto EntityCommand e atribui um texto de consulta da Entity SQL à sua propriedade EntityCommand.CommandText. Essa consulta Entity SQL solicita os produtos ordenados pelo preço de venda do modelo conceitual. O código a seguir não tem nenhum conhecimento do modelo de armazenamento.
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
FROM AdventureWorksEntities.Product AS p
ORDER BY p.ListPrice";
Executando consultas
Quando uma consulta é executada, ela é analisada e convertida em uma árvore de comandos canônica. Todo processamento subsequente é executado na árvore de comandos. A árvore de comandos é o meio de comunicação entre System.Data.EntityClient e o provedor de dados .NET Framework subjacente, como System.Data.SqlClient.
O EntityDataReader expõe os resultados da execução de um EntityCommand em relação a um modelo conceitual. Para executar o comando que retorna EntityDataReader, chame ExecuteReader. O EntityDataReader implementa IExtendedDataRecord para descrever resultados estruturados avançados.
Gerenciando transações
No Entity Framework, existem dois modos de usar transações: automático e explícito. As transações automáticas usam o namespace System.Transactions, e as transações explícitas usam a classe EntityTransaction.
Para atualizar os dados expostos por meio de um modelo conceitual, consulte Como gerenciar transações no Entity Framework.
Nesta seção
Como: executar uma consulta que retorna resultados de PrimitiveType
Como: executar uma consulta que retorna resultados de StructuralType
Como: executar uma consulta que retorna resultados de RefType
Como: executar uma consulta que retorna tipos complexos
Como: executar uma consulta que retorna aninhados coleções
Como: executar uma consulta Entity SQL parametrizada usando EntityCommand
Como: executar um procedimento armazenado parametrizado usando EntityCommand
Como: executar uma consulta polimorfo
Como: navegar em relações com o operador navegar