zoukankan      html  css  js  c++  java
  • .Net Core3.1使用EFCore进行数据迁移(Migration)

    开发环境

    编译器:VS2019
    

    运行环境

    DotNet Core SDK(3.1.8)
    

    SqlServer迁移方式

    依赖包

    Microsoft.EntityFrameworkCore
    Microsoft.EntityFrameworkCore.SqlServer
    

    使用迁移命令需要的依赖包

    Microsoft.EntityFrameworkCore.Tools
    EntityFramework
    Microsoft.EntityFrameworkCore.Design
    

    迁移命令

    1.创建第一个迁移
    Add-Migration InitialCreate   
    
    2.创建数据库和架构
    Update-Database 
    

    如果在实体中需要新增CreatedTimestamp 字段

    public class Blog
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime CreatedTimestamp { get; set; }
    }
    

    执行如下命令创建新迁移:

    Add-Migration AddBlogCreatedTimestamp
    
    Update-Database
    

    如果执行Update-Database异常需要删除上一个添加的迁移命令

    删除上一个添加的迁移命令
    Remove-Migration
    

    appsettings.json配置

    新增ConnectionString节点

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      
      "ConnectionString": {
        "SqlServer": "server=.;database=NetCoreDemo;uid=sa;pwd=123"
      }
    }
    
    

    Startup.cs配置如下

    public void ConfigureServices(IServiceCollection services)
    {
        string constr = Configuration.GetSection("ConnectionString:SqlServer").Value;
        services.AddDbContext<MyDbContext>(options =>
            options.UseMySQL(connstr, m => m.MigrationsAssembly("User.API"));
    
        services.AddControllersWithViews();
    }
    

    MySql迁移方式

    依赖包

    Microsoft.EntityFrameworkCore
    Microsoft.EntityFrameworkCore.Design
    Microsoft.EntityFrameworkCore.Tools
    MySql.Data.EntityFrameworkCore
    

    appsettings.json配置

    新增ConnectionString节点

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ConnectionString": {
        "MySql": "Data Source=localhost;port=3306;database=NetCoreDemo;User Id=root;Password=12345"
      }
    }
    
    
    

    Startup.cs配置如下

    public void ConfigureServices(IServiceCollection services)
    {
        var constr = Configuration.GetSection("ConnectionString:MySql").Value;
        services.AddDbContext<MyDbContext>(
              options.UseMySQL(connstr, m => m.MigrationsAssembly("User.API"));
              );
    
        services.AddControllersWithViews();
    }
    

    在依次执行上述迁移命令即可

    注意执行命令时必须默认项目必须选择继承了DbContext 的那个程序集

  • 相关阅读:
    Linux下安装confluence汉化破解版
    某种可以解决一切问题的方法
    普通平衡树(treap)
    文艺平衡树(splay模板)
    [CQOI2015]任务查询系统
    [NOIP2016]天天爱跑步
    NOI2018_Day1_T1_归程
    Picture
    bzoj3524 Couriers
    bzoj2588 counting on a tree
  • 原文地址:https://www.cnblogs.com/Java-125/p/13749243.html
Copyright © 2011-2022 走看看