用于实体框架的 EntityClient 提供程序

EntityClient 提供程序是一种数据提供程序,实体框架应用程序使用该提供程序访问在 实体数据模型 (EDM) 中描述的数据。有关 EDM 的信息,请参见 实体框架中的数据建模。EntityClient 使用其他 .NET Framework 数据提供程序访问数据源。例如,EntityClient 在访问 SQL Server 数据库时使用 SQL Server .NET Framework 数据提供程序 (SqlClient)。有关 SqlClient 提供程序的信息,请参见 用于实体框架的 SQL Server .NET Framework 数据提供程序 (SqlClient)。EntityClient 提供程序是在 System.Data.EntityClient 命名空间中实现的。

管理连接

实体框架 通过提供到基础数据提供程序和关系数据库的 EntityConnection,建立在特定于存储的 ADO.NET 数据提供程序的基础之上。若要构造 EntityConnection 对象,必须引用包含所需模型和映射的一组元数据,同时还引用特定于存储的数据提供程序名称和连接字符串。在 EntityConnection 就绪后,即可通过从概念模型生成的类访问实体。

可以在 app.config 文件中指定连接字符串。

System.Data.EntityClient 还包含 EntityConnectionStringBuilder 类。通过使用此类的属性和方法,开发人员可以使用此类以编程方式创建语法正确的连接字符串,并可以分析和重新生成现有的连接字符串。有关更多信息,请参见如何:生成 EntityConnection 连接字符串(实体框架)

创建查询

Entity SQL 语言是与存储无关的 SQL 方言,直接使用概念性实体架构并支持 EDM 功能(如继承和关系)。EntityCommand 类用于对实体模型执行 Entity SQL 命令。构造 EntityCommand 对象时,可以指定一个存储过程名称或查询文本。实体框架 使用特定于存储的数据提供程序将泛型 Entity SQL 转换为特定于存储的查询。有关编写 Entity SQL 查询的更多信息,请参见 Entity SQL 语言

下面的示例创建 EntityCommand 对象并将 Entity SQL 查询文本赋给该对象的 System.Data.EntityClient.EntityCommand.CommandText 属性。此 Entity SQL 查询从概念模型请求按定价排序的产品。下面的代码完全不识别存储模型。

EntityCommand cmd = conn.CreateCommand();

cmd.CommandText = @"``SELECT VALUE p

FROM AdventureWorksEntities.Product AS p

ORDER BY p.ListPrice ";

执行查询

执行查询时,查询将经过解析并转换为规范命令目录树。所有后续处理都在该命令目录树上执行。该命令目录树是 System.Data.EntityClient 与基础 .NET Framework 数据提供程序(如 System.Data.SqlClient)之间的通信途径。

EntityDataReader 公开对 EDM 执行 EntityCommand 的结果。若要执行返回 EntityDataReader 的命令,请调用 ExecuteReaderEntityDataReader 实现 IExtendedDataRecord 以描述丰富结构化的结果。有关更多信息,请参见How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework)

管理事务

在实体框架中,有两种使用事务的方法:自动使用和显式使用。自动事务使用 System.Transactions 命名空间,而显式事务使用 EntityTransaction 类。

不能使用 EntityCommand 语法更新通过实体数据模型 (EDM) 公开的数据;必须使用对象服务。有关使用对象服务更新数据的信息,请参见如何:管理对象服务事务(实体框架)

另请参见

其他资源

管理连接和事务(实体框架任务)
ADO.NET 实体框架
实体框架任务
功能参考(实体框架)
对象服务(实体框架)