在本任务中,您将针对在 School 模型中表示实体和关联的 CLR 对象创建强类型查询,并将显示控件绑定到从这些查询中返回的对象集合。
在 School 数据库中查询系
-
在 CourseViewer 窗体的代码文件的开始处,添加以下 using (C#) 或 Imports (Visual Basic) 语句,以引用从 School 数据库和实体命名空间中创建的模型。
using System.Data.Objects;
using System.Data.Objects.DataClasses;
-
在 CourseViewer 窗体的分部类定义的顶部,添加以下用于创建 ObjectContext 实例的代码。
//Create an ObjectContext instance based on SchoolEntityprivate SchoolEntities schoolContext; -
在 CourseViewer 窗体设计器中,双击 CourseViewer 窗体。
-
此时将打开窗体的代码页并创建 courseViewer _Load 事件处理程序方法。
-
在 courseViewer _Load 事件处理程序方法中,复制并粘贴以下用于定义 DataGridView 的代码,执行返回系科集合的查询(按 Name 排序),然后将 Department 对象的集合绑定到 departmentList 控件。
显示所选系的课程
-
在 CourseViewer 窗体设计器中,双击 departmentList 控件。
此时将创建 departmentList_SelectedIndexChanged 事件处理程序方法。
-
粘贴以下用于加载与所选系相关的课程的代码。
try
{
//Get the object for the selected department.
Department department = (Department)
this.departmentList.SelectedItem;
//Bind the grid view to the collection of Course objects// that are related to the selected Department object.
courseGridView.DataSource = department.Courses;
// Hide the columns that are bound to the navigation properties on Course.
courseGridView.Columns[
"Department"].Visible =
false;
courseGridView.Columns[
"StudentGrades"].Visible =
false;
courseGridView.Columns[
"OnlineCourse"].Visible =
false;
courseGridView.Columns[
"OnsiteCourse"].Visible =
false;
courseGridView.Columns[
"People"].Visible =
false;
courseGridView.Columns[
"DepartmentId"].Visible =
false;
courseGridView.AllowUserToDeleteRows =
false;
courseGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
后续步骤
您已成功地创建了返回 Department 和 Course 对象的查询并将这些对象绑定到控件。 接下来,您需要将在数据网格中对 Course 对象所做的更改保存到数据库中: 插入和更新数据(实体框架快速入门)。
请参见