配置 EntityDataSource 控件

更新:2007 年 11 月

EntityDataSource 控件利用 ADO.NET Entity Framework 中的对象服务组件,将实体数据模型 (EDM) 定义的绑定数据简化为 ASP.NET Web 应用程序中的控件。这使得该控件可以撰写和执行对象查询,并将控件绑定到返回的对象,这些对象是在 EDM 中定义的实体类型的实例。有关更多信息,请参见对象服务概述 (Entity Framework)

必须配置 EntityDataSource 控件的属性,才能连接到 EDM 并返回正确的实体类型。设置 ConnectionStringDefaultContainerName 属性时,EntityDataSource 控件可以创建 ObjectContext 用来执行对象查询。设置 EntitySetNameEntityTypeFilter 属性时,要定义 EntityDataSource 控件撰写的 ObjectQuery<T> 的类型。

Cc488535.alert_note(zh-cn,VS.90).gif说明:

若要使用 EntityDataSource 控件,必须将应用程序中的引用添加到 DLL 和 类中,前者包含 EDM 模型和映射文件,后者表示 ObjectContext 和实体类型。

连接字符串

可以初始化 EntityDataSource 控件的 ConnectionString 属性,该控件位于存储在应用程序配置文件的 connectionStrings 元素中的一个命名的 EDM 连接字符串中。当使用实体数据模型向导创建 EDM 时,同时在应用程序配置文件中也创建了一个命名的 EDM 连接。然后可以在 EntityDataSource 设计器的**“配置数据源”**向导中查看作为选项的该连接。有关更多信息,请参见配置数据源向导(EntityDataSource 控件)

对象上下文

在对象服务中,一个类型化的 ObjectContext 表示概念模型中的实体容器。ObjectContext 类是与 EDM 定义的数据进行交互的主要类。该数据的形式为实体类型的实例。一个类型化的 ObjectContext 封装与数据库之间的连接、描述模型的元数据以及在创建、更新和删除操作期间跟踪对象的 ObjectStateManager 对象。EntityDataSource 控件的 ContextTypeName 属性是一个字符串,指定 EntityDataSource 控件使用的类型化的 ObjectContext 的完全限定类型名。如果未指定 ContextTypeName 属性,则必须同时设置 EntityDataSource 控件的 DefaultContainerNameConnectionString 属性来创建 ObjectContext。您可以从 ContextType 属性访问 EntityDataSource 控件使用的 ObjectContext。有关更多信息,请参见对象上下文生命周期管理 (EntityDataSource)

实体类型

在 EDM 中,实体集是在概念性架构中定义的实体类型的逻辑容器。可以指定对象类型的实体集,EntityDataSource 控件可以通过 EntitySetName 访问。EntitySetName 属性的值是控件使用的默认 SELECT 语句。如果将查询指定为为 CommandText 属性提供的实体 SQL 表达式,则不需要该设置。有关更多信息,请参见 自定义命令文本 (EntityDataSource)

如果 EntityDataSource 控件必须返回一个特定的派生类型,则还必须在 EntityTypeFilter 属性中指定该派生类型的名称。如果 EntitySetName 属性指定了一个能够生成多态结果的实体集,则需要 EntityTypeFilter 属性才能编辑数据。设置 EntityTypeFilter 属性与将 OfType<TResultType> 方法应用于 ObjectQuery<T> 具有同样的效果。如果数据绑定是只读的,则不需要 EntityTypeFilter 属性。在这种情况下,查询返回对象的属性将为实体集的默认实体类型的属性。

请参见

概念

EntityDataSource 设计器

配置数据源向导(EntityDataSource 控件)

自定义命令文本 (EntityDataSource)

其他资源

对象查询 (Entity Framework)