本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解。

视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR

GitHub源码:https://github.com/hllive/LearnEFCore3.1

1、概述

如何生成数据库以及后来发生变化进行迁移

生成迁移的流程

  • 1、创建Model相当于是要映射到数据库中的表
  • 2、创建Migration迁移文件(对源码版本控制友好)
  • 3、使用Migration迁移文件来生成数据库或生成脚本

执行要求

AppDbContext 这个类是在Data类库项目中,而Data项目类型是一个类库,想让EFCore生成数据库或数据迁移的话,它必须有一个可执行文件,所以它这一个项目是不能执行的。

那么就得需要依靠【Web应用程序】,它能生成可执行文件,就得通过它来生成数据库。

除此之外,Migration还所需的安装库,(这两个库在上节中已经安装)

  • 1、Microsoft.EntityFrameworkCore.Design
  • 2、Microsoft.EntityFrameworkCore.Tools

安装好包后需要执行一些迁移用到的命令,迁移命令需要在【程序包管理器控制台】中执行;怎么打开程序包管理器控制台:菜单中的【视图】=>【其他窗口】=>【程序包管理器控制台】

在控制台中的【默认项目】选为Data,也就是包含AppDbContext类的项目



通过执行以下命令可以查看帮助

get-help entityframework

常用的两个命令

  • Add-Migration  添加一个迁移文件
  • Update-Database  把迁移文件应用到数据库,执行数据库的更新或创建

2、执行迁移

add-migration inital

inital是添加迁移文件的命名(可以自定义)

执行遇到以下错误



解决方案:将WebApi应用程序设为启用项目,选中【WebApi项目】右击选择【设为启用项目】

再执行又遇到以下错误



解决方案:这个提示是说在WebApi项目中没有安装Microsoft.EntityFrameworkCore.Design,我们在WebApi项目上安装Microsoft.EntityFrameworkCore.Design包就可以了

看到以下情况这就是执行成功了



执行成功后在Data项目生成Migrations文件夹



第一个文件叫xxxx_inital文件就是我们命名的迁移文件

xxxxModelSnapshot相当于是一个快照,这个文件非常重要,不能手动去改,EFCore使用这个文件来追踪当前所有Model的变更状态

3、生成数据库或脚本

  • 1、Update-Database  将数据库更新为指定的迁移,可以添加参数-verbose查看执行过程中的一些明细
  • 2、Script-Migration  从迁移文件中生成一个脚本(通常在生产环境中使用)执行命令后会自动打开生成的脚本文件



看到Done结果就说明已经生成和更新数据库成功,通过【SQL Serve对象资源管理器】可以查看生成后的数据库的情况。

这种先写Model再生成数据的办法叫Code Frist(代码优先)

博客文章可以转载,但不可以声明为原创

2、Entity Framework Core 3.1入门教程-创建数据库和迁移的更多相关文章

  1. 1、Entity Framework Core 3.1入门教程-概述和准备工作

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  2. 3、Entity Framework Core 3.1入门教程-设定字段属性

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  3. 10、Entity Framework Core 3.1入门教程-执行原生SQL

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  4. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  5. ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  6. Entity Framework Core 2.0 入门简介

    不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...

  7. Entity Framework Core 2.0 入门

    该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...

  8. Entity Framework 6.x - Code First 默认创建数据库的位置

    在集成DbContext的派生类中的构造函数里,如果没有指定配置文件中的数据库连接字符串的name,默认就是: Data Source=(localdb)\MSSQLLocalDB;Initial C ...

  9. ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...

随机推荐

  1. pandas_分类与聚合

    # 分组与聚合 import pandas as pd import numpy as np # 设置列对齐 pd.set_option("display.unicode.ambiguous ...

  2. PHP date_create() 函数

    ------------恢复内容开始------------ 实例 返回一个新的 DateTime 对象,然后格式化日期: <?php$date=date_create("2013-0 ...

  3. Python性能分析与优化PDF高清完整版免费下载|百度云盘

    百度云盘|Python性能分析与优化PDF高清完整版免费下载 提取码:ubjt 内容简介 全面掌握Python代码性能分析和优化方法,消除性能瓶颈,迅速改善程序性能! 对于Python程序员来说,仅仅 ...

  4. C 语言学习 -1

    头文件  stdio.h stdlib.h sting.h 先学习上面三个头文件: 1: stdio.h  这个头文件包含了 程序与外界数据交互的各种函数 说白了就是    用来处理     输入/输 ...

  5. springMVC请求路径 与实际资源路径关系

    个人理解: 请求路径可以分为两部分:不通过springmvc转发的url:通过springmvc转发的url: 通过特定的配置,告诉springmvc哪些url需要从springmvc处理,处理后再跳 ...

  6. Rx.js实现原理浅析

    前言 上次给大家分享了cycle.js的内容,这个框架核心模块的代码其实只有一百多行,要理解这个看似复杂的框架,其实最核心的是理解它依赖的异步数据流处理框架--rx.js.今天,给大家分享一下rx.j ...

  7. 前端面试基础题:Ajax原理

    Ajax 的原理简单来说是在⽤户和服务器之间加了—个中间层( AJAX 引擎),通过XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后⽤ javascrip t 来操作 D ...

  8. 用 Python 可以实现侧脸转正脸?我也要试一下!

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例 ...

  9. Docker 快速搭建 LDAP

    Docker 快速搭建 LDAP 步骤 # 拉取镜像 docker pull osixia/openldap:1.3.0 # 创建并进入映射目录 mkdir -p /usr/local/ldap &a ...

  10. Linux查询版本、查询端口

    lsb_release -a 查看当前Linux系统版本 netstat 检查端口 netstat 是一个命令行工具,可以提供有关网络连接的信息.要列出正在侦听的所有 TCP 或 UDP 端口,包括使 ...