ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ef core 数据迁移

2021-12-30 22:03:25  阅读:237  来源: 互联网

标签:core ef Microsoft EntityFrameworkCore dotnet using 迁移 public


1 安装 EF Core 命令行工具

安装命令 

dotnet tool install --global dotnet-ef

2 搭建好项目 entity,map,dbContext 

在项目中添加如下引用:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Design

Microsoft.EntityFrameworkCore.Relational

Microsoft.EntityFrameworkCore.SqlServer

3.1 添加 entities

SysUserEntity 如下

namespace ConsoleApp_EFMigration.Entities
{
    public class SysUserEntity
    {
        /// <summary>
        /// Id
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// 用户账号
        /// </summary>
        public string UserCode { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }
    }
}

 

3.2 添加 maps

SysUserMap 如下

using ConsoleApp_EFMigration.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace ConsoleApp_EFMigration.Maps
{
    public class SysUserMap : IEntityTypeConfiguration<SysUserEntity>
    {
        public void Configure(EntityTypeBuilder<SysUserEntity> builder)
        {
            builder.ToTable("SysUser"); // 映射到表 SysUser

            builder.HasKey(c => c.Id); // 表 主键为 Id
        }
    }
}

 

3.3 添加 dbContexts

 数据库 Test 的上下文类如下

using ConsoleApp_EFMigration.Entities;
using ConsoleApp_EFMigration.Maps;
using Microsoft.EntityFrameworkCore;

namespace ConsoleApp_EFMigration.DbContexts
{
    /// <summary>
    /// 数据库 Test 上下文类
    /// </summary>
    public class TestDbContext : DbContext
    {
        public TestDbContext()
        {
            Database.EnsureCreated();
        }

        public DbSet<SysUserEntity> SysUsers { get; set; }
        public DbSet<SysRoleEntity> SysRoles { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration(new SysUserMap());
            modelBuilder.ApplyConfiguration(new SysRoleMap());

            base.OnModelCreating(modelBuilder);
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            string connStr = "Server=****;Database=Test;Uid=sa;Pwd=****;TrustServerCertificate=True;";
            optionsBuilder.UseSqlServer(connStr); // SqlServer 数据库
        }
    }
}

 

3 在项目.csproj文件目录下,文件地址栏输入 cmd

 

  4 添加迁移 

在 cmd 窗口中输入添加迁移命令如下:

dotnet ef migrations add First

// 撤销迁移  dotnet ef migrations add AddProvinceName2 命令

dotnet ef migrations remove

5 应用迁移

在cmd窗口中执行以下迁移命令

dotnet ef database update

 

 6 查看迁移结果

 

 

 

参考链接

https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli

https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/managing?tabs=dotnet-core-cli

标签:core,ef,Microsoft,EntityFrameworkCore,dotnet,using,迁移,public
来源: https://www.cnblogs.com/tomorrow0/p/15734308.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有