概念:Migration 数据库迁移
面向对象的ORM开发中,数据库不是程序员手动创建的,而是由Migration工具生成的。关系数据库只是盛放模型数据的一个媒介而已,理想状态下,程序员不用关心数据库的操作。
根据对象的定义变化,自动更新数据库中的表以及表结构的操作,叫做Migration(迁移)。
迁移可以分为多步(项目进化),也可以回滚。
1.创建实体类
[Table("Users")]
public class User
{
[Key]
public int ID { get; set; }
public string User_Name { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
2.创建DbContext类
public class AdminDbContext:DbContext
{
public AdminDbContext(DbContextOptions<AdminDbContext> options)
:base(options) {
}
public DbSet<User> user { get; set; }
}
3.安装EFCore依赖
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
4.在appsettings.json中配置连接字符串
"ConnectionStrings": {
"OnStr": "server=LAPTOP-RAOPFR1J;Database=Admin; user id=sa; Password=123456"
}
5.在Program添加(6.0一下的startup.cs的ConfigureServices中添加)
var connectionString = builder.Configuration.GetConnectionString("OnStr");
builder.Services.AddDbContext<AdminDbContext>(options =>
options.UseSqlServer(connectionString));
6.再在“程序包管理器控制台”中执行如下命令Add-Migration Init
会自动在项目的Migrations文件夹中中生成操作数据库的C#代码。
7.代码需要执行后才会应用对数据库的操作。“程序包管理器控制台”中执行Update-database
这样就创建好了
附加: 如果要添加一个表的其他列就直接在实体类里添加属性
然后执行Add-Migration xxxx ; xxxx是生成在migration文件夹里的生成数据库的代码!