学习ASP.NET Core Razor 编程系列目录

学习ASP.NET Core Razor 编程系列一

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

学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

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

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

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

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

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

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

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

在经过了上面篇文章的学习之后,本篇文章我们来学习如何使用 Entity Framework Code First 迁移功能将新字段添加到模型,并且同时将新字段添加到数据库中。

使用 EF Code First 自动创建数据库时,Code First 会向数据库添加一个表,以帮助跟踪数据库的架构是否与生成它的实体类同步。 如果它们不同步,EF 就会引发异常。 这样一来就更容易发现一致的数据库表或者代码问题。

我们接下来使用Code First迁移功能更新数据库。

1. 现在我们来修改seeddata类,在类中增加一个Publishing字段,并提供数据。修改示例如下所示,你可以对每一本书籍信息都参照修改。

  context.Book.AddRange(
new Book
{
Name = "Python编程 从入门到实践",
ReleaseDate = DateTime.Parse("2018-1-12"),
Author = "埃里克·马瑟斯",
Price = 75.99M,
Publishing="机械出版社"
},

2. 在Visual Studio 2017菜单中选择生成->生成解决方案

3.在Visual Studio 2017的菜单中选择“工具”菜单-->“NuGet 包管理器”>“包管理器控制台”。 如下图。

4. 在 PMC 中,输入以下命令,如图:

Add-Migration Publishing

Add-Migration 指令会通知框架执行以下操作:

1)  将 Book实体类与 数据库中的Book表进行比较。

2)  创建代码以将在数据库中对表Books表结构进行更新。如下图。

3)  Visual Studio 2017对于有新字段“Publishing”的迁移文件的命名是当前日期+字段名称。这样命名这样有助于管理。如下图。

5. 在执行完上面的指令之后,在 PMC 中,输入以下命令,如图:

Update-Database

7. 在执行完以上指令之后,在数据库中添加了Publishing字段。如下图。

8. 虽然我们把字段添加 到数据库,但是这个字段,却是没有数据的。如下图。

那如何给字段同值呢?

  1. 如果你是开发,而且已经修改了初始化类SeedData类。那么可以参考(学习ASP.NET Core Razor 编程系列六——数据库初始化)给数据库初始化数据。
  2. 如果你把所有的记录从数据库中删除。你可以在浏览器中打开书籍列表页面,然后使用删除链接删除记录,也可以使用SQL Server对象资源管理器(SQL Server Management Studio)使用SQL语句把数据从数据库中删除。

现在我们在visual studio 2017中按F5运行应用程序,应用程序不会在如上一篇文章那样报错了。在应用程序运行起来之后,在浏览器中分别打开创建/编辑/列表页面,验证这些页面中是否已经有了publishing 字段的书籍信息。如下图。

列表页面:

创建页面:

编辑页面:

学习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 ...

  3. 学习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. bzoj 2500 幸福的道路 树上直径+set

    首先明确:树上任意一点的最长路径一定是直径的某一端点. 所以先找出直径,求出最长路径,然后再求波动值<=m的最长区间 #include<cstdio> #include<cst ...

  2. 隐马尔可夫模型(HMM)总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项(算法过程,调参等注意事项) 5.实现和具体例子 6.适用场合 内容: 1.算法概述 隐马尔科夫模型(Hidden Markov ...

  3. SpringCloud学习系列之六 ----- 路由网关Zuul基础使用教程

    前言 在上篇中介绍了SpringCloud Config的完美使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关 ...

  4. MIP 技术月报(4月):支持熊掌号登录;优化页面悬浮元素

    之前由MIP团队维护的<移动 Web 加速技术月报>从本期开始,正式升级为<MIP 技术月报>,与以往不同的是,<MIP 技术月报>将会与大家分享包含移动加速技术以 ...

  5. dotnet-warp && NSSM 部署 .net core 项目到 windows 服务

    如果你想将 .net core 项目以服务的形式部署到 windows 系统,希望本篇文章能够让你少走弯路 dotnet-warp 安装使用 dotnet-warp 是一个全局的.NET Core 工 ...

  6. php多进程模型 开箱即用

    仓库地址 https://github.com/xieyong1023/MultiProcess 安装 使用composer 将仓库加到你的项目composer.json的repositories下 ...

  7. Python创建微信机器人

    微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话:因为是微信机器人系列的 ...

  8. Vue 进阶之路(六)

    上篇文章我们分析了一下 vue 中的条件渲染,本篇我们说一下 vue 中的列表渲染和 set 方法. <!DOCTYPE html> <html lang="en" ...

  9. 『取巧』VS2015试用期过后 继续试用

    背景: 个人电脑 安装的 VS2015 Community 社区版. 一直用得挺好,都忘了要登录. 直到近来,30天试用期过 —— VS弹窗:要登录用户名.密码 才能继续使用. 但是,输入了无数次 邮 ...

  10. 为什么需要Docker?

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 估计大家也可能听过Docker这项技术(在论坛上.招 ...