一、创建脚本工具并执行初始迁移

在本节中,您将使用包管理控制台(PMC)来更新数据库:

•添加VisualStudio Web代码生成包。这个包是运行脚本引擎所必需的。

• 执行Add-Migration Initial生成代码文件。

• 执行Update-Database命名,更新数据库。

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

2. 在PMC中,输入以下命令:

1) Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design,如下图。

2) 上面的命令执行完毕之后,输入 Add-Migration Initial。如下图。

3. 在上面的命令执行完毕之后,会在项目中增加Migrations目录和用于创建初始数据库的代码,如下图。这些代码是基于DbContext指定的模型(在Models/ BookCntext.cs)。初始参数用于命名迁移。您可以修改成任何名称,但按惯例您可以选择描述迁移的名称。

4. 在上面的命令执行完毕之后,输入Update-Database,这个命令通过运行Migrations / <time-stamp>_Initial.cs文件,创建数据库表。执行过程如下图。

5. 执行结束之后,会在数据库中创建Book表。如下图。

二、创建书籍管理系统的增删改查页面

  1. 在Windows资源管理器中,选中项目所在的文件夹(文件夹中有Startup.cs文件,Program.cs文件和csproj文件),键盘上按钮“Shift”,鼠标右键—>“在此处打开命令窗口”,打开命令窗口。如下图。

2.  命令窗口中输入以下命令

  • dotnet aspnet-codegenerator razorpage -m Book -dc BookContext -udl -outDir Pages\Books --referenceScriptLibraries

如果收到错误:

未找到与命令“dotnet aspnet codegenerator”匹配的可执行文件。如下图。

3. 则请退出Visual Studio 2017 ,再次执行命令。

如果收到以下错误信息:

则请更新Microsoft.VisualStudio.Web.CodeGeneration.Design到2.0.0。如果版本大于2.0,则请降到2.0.0。

4. 再次执行命令。这次执行成功,如下图。

5. 运行完毕后会在你的Page\Books文件夹中生成增删改查的cshtml。如下图。

三、下表详细介绍了ASP.NET的核心代码生成器`参数:

参数

说明

-m

实体类的名称。

-dc

数据上下文.

-udl

使用默认布局

-outDir

用于创建视图的相对输出文件夹路径

--referenceScriptLibraries

向“编辑”和“创建”页面添加 _ValidationScriptsPartial

使用 h 开关获取 aspnet-codegenerator razorpage 命令方面的帮助:

在命令窗口中输入以下命令:

dotnet aspnet-codegenerator razorpage -h

四、 测试应用程序

1. 在Visual Studio 2017中按下F5,运行应用程序。如下图。

2. 在浏览器中的地址栏中的url的未尾添加/Books(http://localhost:53416/Books)。如下图。

3. 点击“Create New”链接,在新建界面中把信息录入,然后点击“Create”按钮。

4.浏览器中页面返回到列表页面,如下图。

5. 在书籍列表中,选择一本书籍,然后点击“Edit”链接。如下图。           

6. 在编辑界面中进行信息修改,然后点击保存。如下图。

              7. 在书籍列表中,选择一本书籍,然后点击“Details”链接。如下图。

8. 在书籍列表中,选择一本书籍,然后点击“Delete”链接。如下图。

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

学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面的更多相关文章

  1. 学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  2. 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  3. 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  4. 学习ASP.NET Core Razor 编程系列六——数据库初始化

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  5. 学习ASP.NET Core Razor 编程系列七——修改列表页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  6. 学习ASP.NET Core Razor 编程系列八——并发处理

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  7. 学习ASP.NET Core Razor 编程系列九——增加查询功能

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  8. 学习ASP.NET Core Razor 编程系列十——添加新字段

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  9. 学习ASP.NET Core Razor 编程系列十九——分页

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

随机推荐

  1. PHPmysqli的 预处理执行插入语句

    预编译在mysql端 预编译可以自动防止sql注入攻击 <?php //预编译技术 //1.创建一个mysqli对象 //2.创建myslqi预编译对象 $mysqli=); $mysqli-& ...

  2. Oracle 存储过程中的 =>

    oracle实参与形参有两种对应方式1.一种是位置方式,和面向对象语言参数传递类似;2.另外一种是=> 作为形参对应,因为位置对应方法有缺限,比如一个函数有3个参数,但第2个是可以不传(有默认值 ...

  3. java中final和static

    final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...

  4. JSP中的编译指令和动作指令的区别

    JSP中的编译指令和动作指令的区别 1.编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作 2.编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本, ...

  5. BUAA软工第0次作业

    第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 我在大学之前甚至连一个萌新都算不上,根本没有任何一点计算机专业的基础. 因此在进入大学之前,计算机对于我 ...

  6. 校园网IPv6加速

    对于广大学生来说,上网是一件很纠结的事情,校园网要么按时间计费,要么按流量计费,要么是校园宽带.按时间计费速度慢,按流量计费费用高,校园宽带还不能共享,只能电脑开热点给手机上网.有没有既能提高网速又经 ...

  7. 使用PHPword中文乱码并且下载的方法

    如果你的编码格式是utf-8的话就用这个 1.找到 Section.php 的 addText 函数 $givenText = utf8_encode($text); 改成 $givenText = ...

  8. 配置maven环境出现ARP tomcat native library 版本安装跟需求版本不一致时的解决方法An incompatible version xxxx of the APR based Apache Tomcat Native library is installed, while Tomcat requires version xxxx

    此地址下载你所需要的library版本http://archive.apache.org/dist/tomcat/tomcat-connectors/native/ 点击binaries 点win32 ...

  9. RLS自适应滤波器中用矩阵求逆引理来避免求逆运算

    在RLS自适应滤波器的实现过程中,难免不涉及矩阵的求逆运算.而求逆操作双是非常耗时的,一个很自然的想法就是尽可能的避免直接对矩阵进行求逆运算.那么,在RLS自适应滤波器的实现中,有没有一种方法能避免直 ...

  10. 让安卓app支持swf的一个播放器,和自己编写的音乐管理程序

    jcenter方式导入 在需要用到这个库的module中的build.gradle中的dependencies中加入 dependencies { compile 'com.yhd.hdswfplay ...