我们先用modlefrist的方法
概念:Migration(咩个卫生)数据库迁移
面向对象的ORM开发中,数据库不是程序员手动创建的,而是由Migration工具生成的。关系数据库只是盛放模型数据的一个媒介而已,理想状态下,程序员不用关心数据库的操作。
根据对象的定义变化,自动更新数据库中的表以及表结构的操作,叫做Migration(迁移)。
迁移可以分为多步(项目进化),也可以回滚。
1、经典步骤:建实体类;
public class Book
{
public int Id { get; set; }
public string bookname { get; set; }
public string CreatName { get; set; }
public DateTime DateTime { get; set; }
}
2.建一个配置实体类(可以不建后面会说)
public class BookConfig :IEntityTypeConfiguration<Book>
{
public void Configure(EntityTypeBuilder<Book> builder)
{
builder.ToTable("T_Books");//要创建的表名
}
}
3.建DbContext;生成数据库;
public class MyDbContext :DbContext
{
//实体的类对应一个表
public DbSet<Book> Books { get; set; }
//在 OnConfiguring方法中写好连接字符串
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseSqlServer("server=.;Database=Vip; user id=sa; Password=123456");
}
//从指定的程序集里加载所有的IEntityTypeConfiguration(也就是那个配置实体类)加载配置
protected override void OnModelCreating (ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
}
}
4.安装EFcore依赖
在程序包管理控制台输入以下安装命令
Install-Package Microsoft.EntityFrameworkCore.SqlServer
为了使用生成数据库的工具,要安装
Microsoft.EntityFrameworkCore.Tools ,否则执行Add-Migration等命令会出现错误
或者去NuGei包管理器下载
5.执行Migration命令
(1)、再在“程序包管理器控制台”中执行如下命令Add-Migration InitialCreate
会自动在项目的Migrations文件夹中中生成操作数据库的C#代码。
2、代码需要执行后才会应用对数据库的操作。“程序包管理器控制台”中执行Update-database
3、查看一下数据库,表建好了。
附加: 如果要添加一个表的其他列就直接在实体类里添加属性
然后执行Add-Migration xxxx ; xxxx是生成在migration文件夹里的生成数据库的代码!