在这个最终 Lab 中,我们将实践在本门课所学的知识:
使用 EF Core 生成 Model 类和数据访问层(DAL)
创建 country 和 city 管理的控制器
创建 layout 视图、功能性视图和分部视图
运用主从页面和文件上传等技巧
准备 world 数据库
本实验我们将使用 MySQL 示例数据库(world)作为 Web 程序的数据库。MySQL 安装时会默认附加该数据库。
运行 MySQL Workbench 如果在 SCHEMAS 没看到 world 数据库,就请执行 Lab_Starter_Files\Module_5 文件夹中的 world.sql 脚本,手动生成 world 数据库。
为了简化业务模型,我们要删除 countrylanguage 表,并删除 country 表的大部分列。为此,请在 MySQL Workbench 中执行以下 SQL 命令:
USE `world`;
DROP TABLE `countrylanguage`;
ALTER TABLE `country`
DROP COLUMN `Continent`,
DROP COLUMN `SurfaceArea`,
DROP COLUMN `IndepYear`,
DROP COLUMN `Population`,
DROP COLUMN `LifeExpectancy`,
DROP COLUMN `GNP`,
DROP COLUMN `GNPOld`,
DROP COLUMN `LocalName`,
DROP COLUMN `GovernmentForm`,
DROP COLUMN `HeadOfState`,
DROP COLUMN `Capital`,
DROP COLUMN `Code2`;
由于原始的 world 数据库的 country 表没有 NationalFlag 列,因此我们必须手动添加此列:
注:由于 MySQL Workbench 的默认使用安全模式进行表更新。要确保下面的代码成功执行,需先进行以下设置:
在 Workbench 中打开查询窗口后,打开 Edit 菜单并选择 Preferences
在左侧的 General Editors 栏中选择 SQL Editor
在右侧窗口中,向下滚动,找到 Safe Updates,并取消勾选该选项
单击 OK 应用更改并关闭对话框
在 Workbench 的按钮栏上,找到并单击 Reconnect to DBMS 按钮
然后执行以下代码
USE `world`;
ALTER TABLE `country` ADD COLUMN `NationalFlag` NVARCHAR(200);
UPDATE `country` SET `NationalFlag` = 'Images\\Default.png';
接着执行 SELECT * FROM
country;
效果如下:
创建 Model 类和 DAL
参考 2.5.1 Lab1 通过 MySQL 数据库生成 Models 使用 EF Core 创建 Model 类和 DAL。
提示:dotnet ef dbcontext scaffold "Server=localhost;Database=world;Uid=YourUserName;Pwd=YourUserPassword;SslMode=none" "Pomelo.EntityFrameworkCore.MySql" -d -f -o Models
创建控制器和视图
本节只列出创建控制器和视图的步骤,希望你能参考之前所学独立完成。
Shared 视图:
创建 Views\Shared 文件夹
创建 Views\Shared_Layout.cshtml
创建 Views_ViewStart.cshtml
创建 Views\Shared_Error.cshtml
创建分部视图 Views\Shared_CityList.cshtml
Home 主页部分:
创建 Controllers\HomeController.cs
- 添加 Index 操作
创建 Views\Home 文件夹
创建主页 Views\Home\Index.cshtml
Country 部分:
创建 Controllers\CountryController.cs
- 声明相关字段和构造器
将 Default.png 拷贝至 wwwroot\images 文件夹
创建 Views\Country 文件夹
创建 Index 操作及视图
创建 Detail 操作及视图
创建 Create 操作(一对方法)及视图
创建 Update 操作(一对方法)及视图
创建 Remove 操作及视图
CIty 部分:
创建 Controllers\CityController.cs
- 声明相关字段和构造器
创建 Views\City 文件夹
创建 Index 操作及视图
创建 Create 操作(一对方法)及视图
创建 Update 操作(一对方法)及视图
创建 Delete 操作及视图