数据库自动迁移

1、首先创建一个.net Core的项目,

2、引用依赖包

Microsoft.EntityFrameworkCore.SqlServer;
Microsoft.EntityFrameworkCore;
Microsoft.EntityFrameworkCore.Design;
Microsoft.EntityFrameworkCore.Tools;

3、然后在配置文件中添加一个数据库连接

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=.; Database=TableName; User ID=sa; Password=123456; MultipleActiveResultSets=True"
  },
  "AllowedHosts": "*"
}

4、添加上下文

image.png
public class User
{
        [Key]
        public int ID { get; set; }
        [Required]
        public string UserName { get; set; }
        [Required]
        public string Password { get; set; }
        public string Email { get; set; }
        public string Phone { get; set; }
        [Required]
        public DateTime AddTime { get; set; }
}
public class TestContext:DbContext
{
        public TestContext(DbContextOptions<TestContext> options) : base(options) { }
        public DbSet<User> User { get; set; }
        protected override void OnModelCreating(ModelBuilder builder)
        {
        }
}

5、在启动项中配置数据库迁移

public static void Main(string[] args)
{
      var host = CreateHostBuilder(args).Build();
      //数据库迁移
      using (var serviceScope = host.Services.CreateScope())
      {
           var context = serviceScope.ServiceProvider.GetRequiredService<HPCContext>();
           context.Database.Migrate();
      }
      host.Run();
}
在ConfigureServices中添加
public void ConfigureServices(IServiceCollection services)
 {
       services.AddControllersWithViews();
       // ef core
       services.AddDbContext<HPCContext>(options =>
       {
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
       });
}

6、执行命令,生成迁移记录,在程序包管理控制台或cmd。
add-migration inital


image.png

image.png

7、
update-database 添加一个迁移文件成功后,可以用该命令直接更新到数据库,默认是所有迁移。
或者是直接运行项目也可以,运行项目按照更新最新的迁移记录更新。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容