Поставщик EntityClient для Entity FrameworkEntityClient Provider for the Entity Framework

Поставщик EntityClient - это поставщик данных, используемый приложениями платформы Entity Framework для доступа к данным, описанным в концептуальной модели.The EntityClient provider is a data provider used by Entity Framework applications to access data described in a conceptual model. Дополнительные сведения о концептуальных моделях см. в разделе моделирование и сопоставление.For information about conceptual models, see Modeling and Mapping. В EntityClient для доступа к источнику данных используются другие поставщики данных .NET Framework.EntityClient uses other .NET Framework data providers to access the data source. Например, в EntityClient используется поставщик данных .NET Framework для SQL Server (SqlClient) при доступе к базе данных SQL Server.For example, EntityClient uses the .NET Framework Data Provider for SQL Server (SqlClient) when accessing a SQL Server database. Дополнительные сведения о поставщике SqlClient см. в разделе SqlClient для Entity Framework.For information about the SqlClient provider, see SqlClient for the Entity Framework. Поставщик EntityClient реализован в пространстве имен System.Data.EntityClient.The EntityClient provider is implemented in the System.Data.EntityClient namespace.

Управление подключениямиManaging Connections

Entity Framework строится на основе поставщиков данных ADO.NET, относящихся EntityConnection к хранилищу, предоставляя базовому поставщику данных и реляционной базе данных.The Entity Framework builds on top of storage-specific ADO.NET data providers by providing an EntityConnection to an underlying data provider and relational database. Для создания EntityConnection объекта необходимо сослаться на набор метаданных, содержащий необходимые модели и сопоставление, а также имя поставщика данных и строку подключения для конкретного хранилища.To construct an EntityConnection object, you have to reference a set of metadata that contains the necessary models and mapping, and also a storage-specific data provider name and connection string. EntityConnection После завершения можно получить доступ к сущностям через классы, созданные из концептуальной модели.After the EntityConnection is in place, entities can be accessed through the classes generated from the conceptual model.

Строку соединения можно задать в файле app.config.You can specify a connection string in app.config file.

Пространство имен System.Data.EntityClient включает также класс EntityConnectionStringBuilder.The System.Data.EntityClient also includes the EntityConnectionStringBuilder class. Этот класс позволяет разработчикам программным способом создавать синтаксически правильные строки соединения, а также выполнять синтаксический анализ существующих строк соединения и перестраивать их с помощью свойств и методов этого класса.This class enables developers to programmatically create syntactically correct connection strings, and parse and rebuild existing connection strings, by using properties and methods of the class. Дополнительные сведения см. в разделе Практическое руководство. Создайте строкуподключения EntityConnection.For more information, see How to: Build an EntityConnection Connection String.

Создание запросовCreating Queries

Entity SQLEntity SQL Язык является независимым от хранилища диалектом SQL, который работает непосредственно с концептуальными схемами сущностей и поддерживает EDM таких концепций, как наследование и отношения.The Entity SQLEntity SQL language is a storage-independent dialect of SQL that works directly with conceptual entity schemas and supports Entity Data Model concepts such as inheritance and relationships. Класс используется для Entity SQLEntity SQL выполнения команды в модели сущностей. EntityCommandThe EntityCommand class is used to execute an Entity SQLEntity SQL command against an entity model. При конструировании объектов EntityCommand можно указать имя хранимой процедуры или текст запроса.When you construct EntityCommand objects, you can specify a stored procedure name or a query text. Entity Framework работает с поставщиками данных, специфичными для хранилища, Entity SQLEntity SQL для преобразования универсальных типов в запросы, зависящие от хранилища.The Entity Framework works with storage-specific data providers to translate generic Entity SQLEntity SQL into storage-specific queries. Дополнительные сведения о написании Entity SQLEntity SQL запросов см. в разделе язык Entity SQL.For more information about writing Entity SQLEntity SQL queries, see Entity SQL Language.

В следующем примере создается EntityCommand объект и присваивается Entity SQLEntity SQL его EntityCommand.CommandText свойству текст запроса.The following example creates an EntityCommand object and assigns an Entity SQLEntity SQL query text to its EntityCommand.CommandText property. Этот Entity SQLEntity SQL запрос запрашивает продукты, упорядоченные по прейскурантной цене, из концептуальной модели.This Entity SQLEntity SQL query requests products ordered by the list price from the conceptual model. Следующий код не предполагает совершенно никаких знаний о модели хранения.The following code has no knowledge of the storage model at all.

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

Выполнение запросовExecuting Queries

Во время выполнения запрос анализируется и преобразуется в каноническое дерево команд.When a query is executed, it is parsed and converted into a canonical command tree. Вся последующая обработка выполняется над деревом команд.All subsequent processing is performed on the command tree. Дерево команд — это средства взаимодействия между System.Data.EntityClient и базовым .NET Framework поставщиком данных, System.Data.SqlClientнапример.The command tree is the means of communication between the System.Data.EntityClient and the underlying .NET Framework data provider, such as System.Data.SqlClient.

Объект EntityDataReader предоставляет доступ к результатам выполнения команды EntityCommand по отношению к концептуальной модели.The EntityDataReader exposes the results of executing a EntityCommand against a conceptual model. Для выполнения команды, возвращающей значение EntityDataReader, нужно вызвать метод ExecuteReader.To execute the command that returns the EntityDataReader, call ExecuteReader. Класс EntityDataReader реализует интерфейс IExtendedDataRecord для описания детально структурированных результатов.The EntityDataReader implements IExtendedDataRecord to describe rich structured results.

Управление транзакциямиManaging Transactions

Платформа Entity Framework предлагает два способа использования транзакций: автоматический и явный.In the Entity Framework, there are two ways to use transactions: automatic and explicit. В автоматических транзакциях используется пространство имен System.Transactions, а в явных транзакциях - класс EntityTransaction.Automatic transactions use the System.Transactions namespace, and explicit transactions use the EntityTransaction class.

Сведения об обновлении данных, предоставляемых с помощью концептуальной модели , см. в разделе как Управление транзакциями в Entity Framework.To update data that is exposed through a conceptual model, see How to: Manage Transactions in the Entity Framework.

В этом разделеIn This Section

Практическое руководство. Создание строки подключения EntityConnectionHow to: Build an EntityConnection Connection String

Практическое руководство. Выполнение запроса, возвращающего результаты тип PrimitiveTypeHow to: Execute a Query that Returns PrimitiveType Results

Практическое руководство. Выполнение запроса, возвращающего результаты СтруктуралтипеHow to: Execute a Query that Returns StructuralType Results

Практическое руководство. Выполнение запроса, возвращающего результаты РефтипеHow to: Execute a Query that Returns RefType Results

Практическое руководство. Выполнение запроса, возвращающего сложные типыHow to: Execute a Query that Returns Complex Types

Практическое руководство. Выполнение запроса, возвращающего вложенные коллекцииHow to: Execute a Query that Returns Nested Collections

Практическое руководство. Выполнение параметризованного Entity SQL запроса с помощью команды EntityCommandHow to: Execute a Parameterized Entity SQL Query Using EntityCommand

Практическое руководство. Выполнение параметризованной хранимой процедуры с помощью EntityCommandHow to: Execute a Parameterized Stored Procedure Using EntityCommand

Практическое руководство. Выполнение полиморфизма запросаHow to: Execute a Polymorphic Query

Практическое руководство. Навигация по связям с помощью оператора NavigateHow to: Navigate Relationships with the Navigate Operator

См. такжеSee also