开发环境搭建
经典步骤:建实体类、建DbContext、生成数据库
本次使用codefirst模式,走下流程,(你也可以先建好数据库,用命令行的形式,直接生成DbContext,而且生成的DbContext自带对应关系配置)
1、当做一会要在库里生成的表
public class Book { public long Id { get; set; } public string Title { get; set; } public DateTime dateTime { get; set; } public double Price { get; set; } } public class Person { public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }
2、这里以 SQLServer 数据库为例,在构建 Dbcontext 之前,先引入要用到的包
//每一种数据库 都有对应的EFCore 功能包 Install-Package Microsoft.EntityFrameworkCore.SqlServer //这个包是用来在控制台中使用 EFCore的 ef命令 Install-Package Microsoft.EntityFrameworkCore.Tools
3、配置实体与真实表之间的对应关系
public class BookConfig : IEntityTypeConfiguration<Book> { public void Configure(EntityTypeBuilder<Book> builder) { builder.ToTable("T_Books"); } } public class PersonConfig : IEntityTypeConfiguration<Person> { public void Configure(EntityTypeBuilder<Person> builder) { builder.ToTable("T_Persons"); } }
4、接下来 构建 DbContext,需要重写两个方法:一个是告诉我们连的哪个库 一个是把刚才的对应关系告诉DbContext
public class MyDbContext:DbContext { public DbSet<Book> Books { get; set; } public DbSet<Person> Persons { get; set; } //配置链接字符串 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); optionsBuilder.UseSqlServer("Server=.;Database=demo;Trusted_Connection=True;MultipleActiveResultSets=true"); } //实体类与数据库映射关系 protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); //从当前程序集加载所有的IEntityTypeConfiguration modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly); } }
5、Migration 数据库迁移
//新建一个 MigRation Add-Migration “打上你自己的标签” //执行上面生成的脚步 Update-DataBase
6、查看数据库,添加成功