目录
4、 新建名为 Models 的文件夹,并添加名为Movie.cs类
1、新建文件
打开集成终端,输入以下命令
dotnet new webapp -o RazorPagesMovie
code -r RazorPagesMovie
2、信任HTTPS开发证书
终端输入:
dotnet dev-certs https --trust
3、检查项目文件
4、新建名为 Models 的文件夹,并添加名为Movie.cs类
5、添加Nuget包和EF工具
终端输入:
dotnet tool uninstall --global dotnet-aspnet-codegenerator
dotnet tool install --global dotnet-aspnet-codegenerator
dotnet tool uninstall --global dotnet-ef
dotnet tool install --global dotnet-ef
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SQLite
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
6、搭建基架
(执行创建、读取、更新和删除 ,CRUD 操作)
终端输入:
dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries -sqlite
获取 dotnet-aspnet-codegenerator razorpage
命令方面的帮助:
dotnet-aspnet-codegenerator razorpage -h
7、数据库环境
SQLite 是一个 C 语言库,它实现了一个 小型、 快速、 自包含、 高可靠性、 全功能的 SQL 数据库引擎。SQLite 是世界上使用最多的数据库引擎。
SqlServer常规数据库(此处不用)
8、EF迁移
终端输入:
dotnet tool install --global dotnet-ef
dotnet ef migrations add InitialCreate
dotnet ef database update
9、生成应用
解决方案中删除以下代码,为消除“可为空引用类型的警告”
<Nullable>enable</Nullable>
10、测试应用
F5运行应用,进入主页测试
测试CRUD功能,是否实现
11、设定数据库数据
使用以下代码在 Models 文件夹中创建一个名为 SeedData
的新类:
using Microsoft.EntityFrameworkCore;
namespace RazorPagesMovie.Models
{
public static class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
using (var context = new RazorPagesMovieContext(
serviceProvider.GetRequiredService<
DbContextOptions<RazorPagesMovieContext>>()))
{
if (context == null || context.Movie == null)
{
throw new ArgumentNullException("Null RazorPagesMovieContext");
}
// Look for any movies.
if (context.Movie.Any())
{
return; // DB has been seeded
}
context.Movie.AddRange(
new Movie
{
Title = "主机",
ReleaseDate = DateTime.Parse("2022-4-22"),
Genre = "联想",
Price = 7.99M
},
new Movie
{
Title = "显示器",
ReleaseDate = DateTime.Parse("2022-4-22"),
Genre = "戴尔",
Price = 8.99M
},
new Movie
{
Title = "键盘",
ReleaseDate = DateTime.Parse("2022-4-24"),
Genre = "电竞",
Price = 9.99M
},
new Movie
{
Title = "鼠标",
ReleaseDate = DateTime.Parse("2022-4-22"),
Genre = "电竞",
Price = 3.99M
}
);
context.SaveChanges();
}
}
}
}
更新 Program.cs代码:
启动项目测试 ,会发现所有数据都是刚才设定的数据
12、添加搜索
打开文件Pages/Movies/Index.cshtml.cs ,添加新的字段,对
OnGetAsync添加搜索查询
在Pages/Movies/Index.cshtml页面下新增搜索框
启动并测试项目
13、添加验证
更新Models/Movie.cs
类以利用内置的[Required]
、[StringLength]
、[RegularExpression]
和[Range]
验证属性。
启动项目并验证
本章完结
参考微软官网