更新:2007 年 11 月
当与 EntityDataSource 控件一起使用时,ListView、FormView、DetailsView 和 GridView Web 服务器控件会提供自动读取、插入、更新和删除功能。您可以轻松地在这些控件的设计图面上配置 HTML 元素,并将它们数据绑定到 EntityDataSource 控件。
将 Web 服务器控件绑定到 EntityDataSource
ListView、FormView、DetailsView 和 GridView 控件的设计非常相似。使用以下步骤将其中一个 Web 服务器控件绑定到 EntityDataSource 控件:
- 创建 ASP.NET Web 应用程序。 
- 将项目配置为使用 Entity Framework,定义项目的实体数据模型 (EDM),并重新生成项目。有关更多信息,请参见如何:使用实体数据模型向导 (Entity Framework)。 
- 将控件拖到网页设计图面上。 
- 配置 EntityDataSource。有关更多信息,请参见配置 EntityDataSource 控件。 
- 将控件配置为使用 EntityDataSource 控件。 
| .gif) 说明: | 
|---|
| 由于在处理实体对象的导航属性时存在 Web 服务器控件设计器限制,因此必须手动编辑代码隐藏页,移除项模板中导航属性名称中的括号。 | 
下面的过程创建一个绑定到 EntityDataSource 控件 ListView 控件。若要完成此过程,您必须已经配置了 Entity Framework,并且已经定义了 AdventureWorks Sales 模型。有关更多信息,请参见如何:使用实体数据模型向导 (Entity Framework)。
创建一个绑定到 EntityDataSource 的 ListView 控件:
- 生成项目和数据模型。 
- 将 ListView 控件的一个实例拖到设计图面上。 
- 单击 ListView 控件上的**“>”符号,并选择“选择数据源”**。 
- 从下拉列表中选择**“<新建数据源>”**。 
- 当**“数据源配置”向导显示后,选择“实体”,并将 SalesOrderHeaderDataSource 指定为数据源的名称,然后单击“确定”**。 
- 选择 AdventureWorksEntities 作为**“命名连接”和“DefaultContainerName”,再单击“下一步”**。 
- 从**“EntitySetName”下拉列表框中选择 SalesOrderHeader,使“全选(实体值)”**复选框处于选中状态,并选中自动插入、更新和删除复选框。 
- 单击**“完成”**。 - 这会创建一个绑定到名为 EntityDataSource1 的 EntityDataSource 控件实例的新 ListView 控件实例。 
- 在 SalesOrderHeaderDataSource 的**“属性”页中,查找“Include”**属性,并添加以下字符串: - Address, Address1, Contact- 这可以确保对于查询返回的每个 SalesOrderHeader 对象,查询还将返回相关的 Address 和 Contact 对象。有关更多信息,请参见定义查询路径 (EntityDataSource)。 
- 在**“ListView 任务”框中单击“配置 ListView”**选项。 
- 选中**“启用编辑”、“插入”、“删除”和“分页”**复选框。 
- 单击**“确定”**。 .gif) 说明: 说明:- 此时,应用程序应该可以运行。但是,以下步骤是必需的,因为在处理实体对象的导航属性时存在 Web 服务器控件设计器限制。 
- 在**“源”**视图中打开 Default.aspx 文件。 
- 查找并移除所有 Address.AddressID、Address1.AddressID 和 Contact.ID 实例周围的方括号 [ ]。将在 ItemTemplate 和 InsertItemTemplate 中的所有 Eval 和 Bind 函数匹配项中找到这些类型。 - 重新生成项目并运行应用程序。