如何:将对象作为项目数据源添加(实体框架)
可以创建基于 Visual Studio 应用程序中的对象的数据源。 在将实体类型定义为项目中的数据源后,通过将**“数据源”**窗口中的项拖到窗体上即可创建显示实体数据的窗体。 这些项将成为窗体上绑定到该数据源的控件。 有关更多信息,请参见将对象绑定到控件(实体框架)。
在本主题中,您将为 Adventure Works 销售模型中的 SalesOrderHeader 类型创建一个数据源。 然后,将使用此数据源创建一个 Windows 窗体,其中包含绑定到实体数据的控件。 若要完成这些过程,必须已将 AdventureWorks 销售模型添加到您的项目中,并将项目配置为使用 实体框架 。 为此,请完成如何:使用实体数据模型向导(实体框架) 中的过程。
创建基于 SalesOrderHeader 类型的数据源
如果您最近添加了实体数据模型项,请生成项目。
在**“数据”菜单上单击“添加新数据源”**。
在**“选择数据源类型”页上,选择“对象”**。
在**“选择希望绑定到的对象”**页上,展开该项目节点,展开项目的命名空间节点,然后在树视图中选择 SalesOrderHeader 类型。
单击**“完成”**。
SalesOrderHeader 数据源随即添加到**“数据源”**窗口中。
将数据源绑定控件添加到 Windows 窗体
在**“数据源”**窗口中,展开 SalesOrderHeader 节点。
将 SalesOrderHeader 节点中的一个或多个属性拖到窗体上。
这会在窗体上创建 salesOrderHeaderBindingSource 和 salesOrderHeaderBindingNavigator 控件。 此外,还会在窗体上为每个属性创建一个数据绑定控件,并附带经过相应命名的标签控件。
将 SalesOrderDetail 导航属性拖到窗体上。
这会创建 salesOrderDetailBindingSource 控件,该控件的 DataSource 属性和 DataMember 属性分别设置为 salesOrderHeaderBindingSource 和 SalesOrderDetail。 此外,还会在窗体上创建 salesOrderDetailDataGridView 数据绑定控件,并附带经过相应命名的标签控件。
将数据源绑定到对象查询的结果
打开窗体的代码页,并添加以下 using 语句(在 Visual Basic 中为 Imports):
using System.Data.Objects;
在定义窗体的分部类中,添加创建 ObjectContext 实例并定义 customerID 常量的以下代码。
private AdventureWorksEntities context; private const int customerId = 277;
在窗体设计器中,双击窗体。
这会打开窗体的代码页,并创建用于处理窗体的 Load 事件的方法。
在 Load 事件处理程序中,复制并粘贴以下代码。
// Initialize the object context. context = new AdventureWorksEntities(); try { // Create a query for orders and related items. var orderQuery = context.SalesOrderHeaders .Where("it.CustomerID = @customerId", new ObjectParameter("customerId", customerId)) .Include("SalesOrderDetails"); // Set the data source of the binding source to the ObjectResult // returned when the query is executed. salesOrderHeaderBindingSource.DataSource = orderQuery.Execute(MergeOption.AppendOnly); } catch (EntitySqlException ex) { MessageBox.Show(ex.Message); }
此代码执行一个查询,该查询针对特定客户返回 SalesOrderHeader 和相关 SalesOrderDetail 对象的集合,并将 SalesOrderHeader 对象的集合绑定到 salesOrderHeaderBindingSource。
另请参见
任务
如何:将对象绑定到 Windows Presentation Foundation 控件(实体框架)
如何:将对象绑定到 Windows 窗体控件(实体框架)