添加数据模型
在解决方案资源管理器中,右键单击“RazorPagesMovie”项目 >“添加” > “新建文件夹”。 将文件夹命名为“Models”。
右键单击“Models”文件夹。 选择“添加” > “类”。 将类命名为“Movie”,并添加以下属性:
向 Movie
类添加以下属性:
using System;
namespace RazorPagesMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
}
数据库需要 ID
字段作为主键。
添加数据库上下文类
将以下 MovieContext.cs 类添加到“模型”文件夹:
using Microsoft.EntityFrameworkCore;
namespace RazorPagesMovie.Models
{
public class MovieContext : DbContext
{
public MovieContext(DbContextOptions<MovieContext> options)
: base(options)
{
}
public DbSet<Movie> Movie { get; set; }
}
}
前面的代码为实体集创建 DbSet
属性。 在实体框架术语中,实体集通常与数据库表相对应,实体与表中的行相对应。
添加数据库连接字符串
将连接字符串添加到 appsettings.json 文件。
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"MovieContext": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
注册数据库上下文
在 Startup 类的 ConfigureServices 方法 (Startup.cs) 中向依赖关系注入容器注册数据库上下文:
public void ConfigureServices(IServiceCollection services)
{
// requires
// using RazorPagesMovie.Models;
// using Microsoft.EntityFrameworkCore;
services.AddDbContext<MovieContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MovieContext")));
services.AddMvc();
}
生成项目以验证有没有任何错误存在。
添加基架工具并执行初始迁移
在 PMC 中,输入以下命令:
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.3
Add-Migration Initial
Update-Database
Install-Package
命令安装运行基架引擎所需的工具。
Add-Migration
命令生成用于创建初始数据库架构的代码。 此架构以(Models/MovieContext.cs 文件中的)DbContext
中指定的模型为基础。 Initial
参数用于为迁移命名。 可以使用任意名称,但是按照惯例应选择描述迁移的名称。 有关详细信息,请参阅迁移简介。
Update-Database
命令在用于创建数据库的 Migrations/<time-stamp>_InitialCreate.cs 文件中运行 Up
方法。
搭建“电影”模型的基架
从命令行(在包含 Program.cs、Startup.cs 和 .csproj 文件的项目目录中)中运行如下命令:
console复制dotnet aspnet-codegenerator razorpage -m Movie -dc MovieContext -udl -outDir Pages\Movies --referenceScriptLibraries
如果收到错误:
No executable found matching command "dotnet-aspnet-codegenerator"
当处于错误的目录时,会发生上述错误。 打开命令行界面,进入项目目录(包含 Program.cs、Startup.cs 和 .csproj 文件的目录),然后运行上述命令。
如果收到错误:
The process cannot access the file
'RazorPagesMovie/bin/Debug/netcoreapp2.0/RazorPagesMovie.dll'
because it is being used by another process.
退出 Visual Studio,然后重新运行命令。
下表详细说明了 ASP.NET Core 代码生成器的参数:
参数 | 描述 |
---|---|
-m | 模型的名称。 |
-dc | 数据上下文。 |
-udl | 使用默认布局。 |
-outDir | 用于创建视图的相对输出文件夹路径。 |
--referenceScriptLibraries | 向“编辑”和“创建”页面添加 _ValidationScriptsPartial |
使用 h
开关获取 aspnet-codegenerator razorpage
命令方面的帮助:
dotnet aspnet-codegenerator razorpage -h