学习ASP.NET Core Blazor编程系列四——迁移
学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)
在具体的实际项目中,数据实体类随着应用程序的功能的变化而变化:添加和删除新的实体或属性,并且需要相应地去修改数据库的表或架构,使其与应用程序中的实体保持同步。 EF Core中的迁移功能能够以递增方式更新数据库架构或表,使其与应用程序的数据实体类保持同步,同时保留数据库中的现有数据。
简要地说,迁移的方式如下:
- 当项目中的数据实体类有了变改时,开发人员使用 EF Core 工具添加相应的迁移,以使数据库架构同项目中的数据实体类保持同步。EF Core 将当前数据实体类与旧的数据实体类进行快照比对,以确定差异,并生成迁移源文件;迁移源文件可在项目的源代码管理中进行跟踪,如同其他任何源文件。
- 生成新的迁移源文件后,可通过多种方式将其应用于数据库。 EF Core 在一个特殊的历史记录表中记录所有的迁移操作,使其知道哪些迁移已执行,哪些迁移尚未执行。
一、创建脚本工具并执行初始迁移
在本篇文章中,我们来学习如何使用包管理控制台(PMC)来对数据库进行更新:
• 执行Add-Migration Initial生成代码文件。
• 执行Update-Database命名,更新数据库。
- 从菜单中选择“工具àNuGet包管理器器—>程序包管理器控制台”菜单。

2. 在PMC中,输入以下命令: Add-Migration Initial。会提示如下错误“Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。”。如下图。

3. 以上错误信息,说明我们缺少相应的包,在本文中主要用到以下三个包:
Microsoft.EntityFrameworkCore.SqlServer (适用于EF Core SQL
Server 提供程序,这个包我们在前面的文章中已经安装了。)
Microsoft.EntityFrameworkCore.Design(适用于EF Core .NET Core
CLI 工具
)
Microsoft.EntityFrameworkCore.Tools(适用于 EF Core 的包管理器控制台工具)
4.使用Visual
Studio NuGet 包管理器控制台安装,在PMC中,输入以下命令:
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design
5.上面的命令执行完毕之后,Nuget会自动安装我们所指定的包,如下图中红框所示。然后我们在PMC中输入 Add-Migration Initial。如下图。

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

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

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

学习ASP.NET Core Blazor编程系列四——迁移的更多相关文章
- 学习ASP.NET Core Blazor编程系列五——列表页面
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列六——初始化数据
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列六——新增图书(上)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列八——数据校验
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列九——服务器端校验
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列十——路由(上)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列十——路由(中)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 四.创建一个Blazor应用程序 1. 第一种创 ...
- 022年9月12日 学习ASP.NET Core Blazor编程系列三——实体
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
随机推荐
- .NET Core 实现后台任务(定时任务)Longbow.Tasks 组件(三)
原文链接:https://www.cnblogs.com/ysmc/p/16512309.html 在上两篇文章中,简单介绍了怎么使用 IHostedService 与 BackgroundServi ...
- MD5,Des,RSA加密解密
一.加密和解密 下面先熟悉几个概念 1>对称加密:加密的key和解密的key是同一个 但是如何确保密钥安全地进行传递?秘钥的安全是一个问题 2>非对称加密:加密点的key和解密的key不是 ...
- PHP goto
if (true){ echo "run if\n"; goto fly; } else{ fly: echo "run else"; }
- Python3的单元测试模块Mock与性能测试模块CProfile
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_92 我们知道写完了代码需要自己跑一跑进行测试,一个写好的程序如果连测试都没有就上到生产环境是不敢想象的,这么做的人不是太自信就是太 ...
- Linux 用户管理相关命令
1 sudo adduser username # 添加用户 2 sudo adduser --system username # 添加系统用户 3 sudo deluser username # 删 ...
- Linux 02 基本命令
参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 工具 清屏 cl ...
- Qt+ECharts开发笔记(四):ECharts的饼图介绍、基础使用和Qt封装百分比图Demo
前言 前一篇介绍了横向柱图图.本篇将介绍基础饼图使用,并将其封装一层Qt. 本篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口. Demo演示 ...
- jQuery 查找父元素的函数 parent 和 parents 的区别
函数 描述 parent([expr]) 查找子节点childNode的父节点,不包括祖先节点 parents([expr]) 查找子节点childNode的父节点,包括祖先节点 Talk is ch ...
- Java精进-20分钟学会mybatis使用
文字分享 希望现在的你无论有明确具体的目标还是没有,都能重视自己的需求和目标,并且常常回顾,或许可以找一个你习惯的方式写出来,挂在哪里,电脑或日记本都好.当你疲惫或迷茫的时候拿出来看一下,这在情怀领域 ...
- pod资源的健康检查-readiness探针的httpGet使用
livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否可用,不可用将从service的endpoint ...