• 2、Entity Framework Core 3.1入门教程-创建数据库和迁移


    本文章是根据 微软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(代码优先)

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

  • 相关阅读:
    linux磁盘挂载
    3个方法解决百度网盘限速 (2018-07-20)
    mysql状态分析之show global status
    Cgroups子系统介绍
    Go语言 关键字:defer
    Go语言 map的实现
    Go语言 基本类型
    MySQL 监控指标
    sshpass的使用方法
    C++11 std::ref使用场景
  • 原文地址:https://www.cnblogs.com/hllive/p/13539378.html
Copyright © 2020-2023  润新知