在 ASP.NET Core 中向 Razor 页面应用添加模型

 

https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/model?view=aspnetcore-2.1

在本部分中将添加用于管理数据库中的电影的类。 可以结合使用这些类和 Entity Framework Core (EF Core) 来处理数据库。 EF Core 是对象关系映射 (ORM) 框架,可以简化必须要编写的数据访问代码。

要创建的模型类称为 POCO 类(源自“简单传统 CLR 对象”),因为它们与 EF Core 没有任何依赖关系。 它们定义数据库中存储的数据属性。

在本教程中,首先要编写模型类,然后 EF Core 将创建数据库。 有一种备选方法(此处未介绍):从现有数据库生成模型类

查看或下载示例。

添加数据模型

在解决方案资源管理器中,右键单击“RazorPagesMovie”项目 >“添加” > “新建文件夹”。 将文件夹命名为“Models”。

右键单击“Models”文件夹。 选择“添加” > “类”。 将类命名为“Movie”,并添加以下属性:

将 Movie 类的内容替换为以下代码:

[!code-csharpMain]

搭建“电影”模型的基架

在此部分,将搭建“电影”模型的基架。 确切地说,基架工具将生成页面,用于对“电影”模型执行创建、读取、更新和删除 (CRUD) 操作。

创建“Pages/Movies”文件夹:

  • 在解决方案资源管理器中,右键单击“Pages”文件夹 >“添加”>“新建文件夹”。
  • 将文件夹命名为“Movies”

在解决方案资源管理器中,右键单击“Pages/Movies”文件夹 >“添加”>“新搭建基架的项目”。

上述说明的图像。

在“添加基架”对话框中,选择“使用实体框架生成 Razor Pages (CRUD)”>“添加”。

上述说明的图像。

完成“使用实体框架(CRUD)添加 Razor Pages”对话框:

  • 在“模型类”下拉列表中,选择“Movie (RazorPagesMovie.Models)。
  • 在“数据上下文类”行中,选择 +(加号)并接受生成的名称“RazorPagesMovie.Models.RazorPagesMovieContext”。
  • 在“数据上下文类”下拉列表中,选择“RazorPagesMovie.Models.RazorPagesMovieContext”
  • 选择“添加”。

上述说明的图像。

添加初始迁移

在本部分中,使用程序包管理器控制台 (PMC) 执行以下操作:

  • 添加初始迁移。
  • 使用初始迁移来更新数据库。

从“工具”菜单中,选择“NuGet 程序包管理器”>“包管理器控制台”。

PMC 菜单

在 PMC 中,输入以下命令:

PMC
Add-Migration Initial
Update-Database

或者,可使用以下 .NET Core CLI 命令:

console
dotnet ef migrations add Initial
dotnet ef database update

忽略以下警告消息,下一教程将对此进行修复:

Microsoft.EntityFrameworkCore.Model.Validation[30000]

No type was specified for the decimal column 'Price' on entity type 'Movie'. This will cause values to be silently truncated if they do not fit in the default precision and scale. Explicitly specify the SQL server column type that can accommodate all the values using 'ForHasColumnType()'.

Add-Migration 命令生成用于创建初始数据库架构的代码。 此架构的依据为 RazorPagesMovieContext 中指定的模型(在 Data/RazorPagesMovieContext.cs 文件中)。 Initial 参数用于为迁移命名。 可以使用任意名称,但是按照惯例应选择描述迁移的名称。 有关详细信息,请参阅迁移简介

Update-Database 命令在用于创建数据库的 Migrations/{time-stamp}_InitialCreate.cs 文件中运行 Up 方法。

如果收到错误:

SqlException:无法打开登录请求的数据库“RazorPagesMovieContext-GUID”。 登录失败。 用户“用户名”登录失败。

缺少迁移步骤

测试应用

  • 运行应用并将 /Movies 追加到浏览器中的 URL (http://localhost:port/movies)。

  • 测试“创建”链接。

    创建页面

  • 测试“编辑”、“详细信息”和“删除”链接。

如果收到 SQL 异常,则验证是否已运行迁移并更新了数据库。

posted @ 2018-07-03 10:39  FH1004322  阅读(999)  评论(0)    收藏  举报