目录
一、使用Mac OS终端创建一个.Net Core Razor Pages Web 应用。
二、使用VS Code的NuGet Package Manager GUI插件添加相关的NuGet程序集。
三、在MySql数据库中创建MoviesDB数据库和Movie表,并插入少量测试数据。
四、使用dbcontext scaffold命令自动生成数据库表对应的对象类及数据库操作类。
一、使用Mac OS终端创建一个.Net Core Razor Pages Web 应用。
输入以下命令:
// 切换到 Projects 文件夹路径下
cd Projects
// 使用 ASP.NET Core 创建 Razor Pages Web 应用,应用名称为 RpMoviesDemo
dotnet new razor -o RpMoviesDemo
// 切换到 RpMoviesDemo 文件夹路径下
cd RpMoviesDemo
// 使用VS Code 工具自动打开项目 RpMoviesDemo
code .
在 VS Code 工具中打开的项目结构如下:
二、使用VS Code的NuGet Package Manager GUI插件添加相关的NuGet程序集。
在VS Code中输入快捷键:Command + Shift + P,然后输入关键字NuGet Package Manager GUI进行搜索,选择回车。
依次添加以下程序集:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Relational
Pomelo.EntityFrameworkCore.MySql
添加完成后,可以在 RpMoviesDemo.csproj 文件中看到以下程序集被自动添加。
三、在MySql数据库中创建MoviesDB数据库和Movie表,并插入少量测试数据。
在MySql数据库中的建库建表SQL语句:
create database MoviesDB;
use MoviesDB;
create table Movie(
ID int not null auto_increment,
Title nvarchar(100) not null,
ReleaseDate datetime not null,
Genre nvarchar(100) null,
Price decimal(18, 2) not null,
Rating nvarchar(50) null,
primary key(ID)
);
在MySql数据库中向Movie表中插入几条数据:
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'中国机长',
'2018-10-01 02:46:32',
'冒险',
45.00,
'9折'
);
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'哪吒之魔童降世',
'2019-07-10 08:34:21',
'动画',
40.00,
'8.5折'
);
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'阿凡达',
'2019-09-30 11:03:26',
'冒险',
55.00,
'9.8折'
);
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'姜子牙',
'2021-06-28 12:45:02',
'动画',
42.00,
'8.8折'
);
INSERT INTO Movie
(
Title,
ReleaseDate,
Genre,
Price,
Rating
)
VALUES
(
'战狼2',
'2021-07-01 02:31:45',
'冒险',
48.00,
'9.5折'
);
四、使用dbcontext scaffold命令自动生成数据库表对应的对象类及数据库操作类。
在项目中添加 Models 空文件夹:
安装dotnet -ef命令工具。
给.Net做数据迁移,需要安装dotnet -ef命令工具。按需输入下述命令之一:
// .Net Core 3.0 以上版本dotnet ef命令不再是sdk的一部分,需要单独安装
// 以下命令默认安装的是最新版本
dotnet tool install --global dotnet-ef
// 如果项目中使用的并不是最新版本,则还是不能使用,需要安装对应版本
// 以下命令安装的是指定版本
dotnet tool install --global dotnet-ef --version 3.1.1
// 安装错误可使用以下卸载命令:
dotnet tool uninstall --global dotnet-ef
// dotnet-ef命令工具安装成功后,还需要给项目引用NuGet包(如果没有引入):
dotnet add package Microsoft.EntityFrameworkCore.Design
安装完dotnet -ef命令工具后,执行以下命令,EF Core 将自动生成相应的对象类及操作类。
dotnet ef dbcontext scaffold "server=127.0.0.1;port=3306;uid=root;pwd=123456;database=MoviesDB" Pomelo.EntityFrameworkCore.MySql -o Models -f
此时查看Models文件夹,发现自动生成数据库表对应的对象类Movie.cs及数据库操作类MoviesDBContext.cs。
五、实现页面简单的增删查改功能。
5.1 页面效果。
https://localhost:7269/Movies?MovieGenre=科幻&SearchString=星
https://localhost:7269/Movies/Create
https://localhost:7269/Movies/Edit/23
https://localhost:7269/Movies/Details/23
https://localhost:7269/Movies/Delete/23
5.2 代码集合。
项目结构:
RpMoviesDemo/Models/Movie.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
nam