教程:使用 ASP.NET MVC 应用更改 EF Database First 的数据库

使用 MVC、实体框架和 ASP.NET 基架,可以创建一个 Web 应用程序来提供现有数据库的接口。 本教程系列介绍如何自动生成代码,使用户能够显示、编辑、创建和删除驻留在数据库表中的数据。 生成的代码对应于数据库表中的列。

本教程重点介绍如何更新数据库结构,并在 Web 应用程序中传播该更改。

在本教程中,你将了解:

  • 添加列
  • 将 属性添加到视图

先决条件

添加列

如果更新数据库中表的结构,则需要确保将更改传播到数据模型、视图和控制器。

在本教程中,你将向 Student 表添加新列,以记录学生的中间名。 若要添加此列,请打开数据库项目,然后打开 Student.sql 文件。 通过设计器或 T-SQL 代码,添加一个名为 MiddleName 的列,该列是 NVARCHAR (50) 并允许 NULL 值。

通过启动数据库项目 (或 F5) 将此更改部署到本地数据库。 新字段将添加到表中。 如果在SQL Server 对象资源管理器中看不到它,请单击窗格中的“刷新”按钮。

显示新列

新列存在于数据库表中,但它当前不存在于数据模型类中。 必须更新模型以包含新列。 在 “模型” 文件夹中,打开 ContosoModel.edmx 文件以显示模型关系图。 请注意,Student 模型不包含 MiddleName 属性。 右键单击设计图面上的任意位置,然后选择“ 从数据库更新模型”。

在更新向导中,选择“ 刷新 ”选项卡,然后选择“ >dbo>Student”。 单击“完成”。

完成更新过程后,数据库关系图将包含新的 MiddleName 属性。 保存 ContosoModel.edmx 文件。 必须保存此文件,才能将新属性传播到 Student.cs 类。 现已更新数据库和模型。

生成解决方案。

将 属性添加到视图

遗憾的是,视图仍然不包含新属性。 若要更新视图,有两个选项 - 可以通过再次为 Student 类添加基架来重新生成视图,也可以手动将新属性添加到现有视图。 在本教程中,你将再次添加基架,因为尚未对自动生成的视图进行任何自定义更改。 在对视图进行更改并且不希望丢失这些更改时,可以考虑手动添加 属性。

若要确保重新创建视图,请删除“视图”下的“学生”文件夹,然后删除 StudentsController。 然后,右键单击“ 控制器 ”文件夹,并为 Student 模型添加基架。 同样,将控制器命名为 StudentsController。 选择 添加

再次生成解决方案。 视图现在包含 MiddleName 属性。

显示中间名

后续步骤

在本教程中,你将了解:

  • 添加了列
  • 向视图添加了 属性

转到下一教程,了解如何自定义视图以显示有关学生记录的详细信息。