Code First模式
Code First是指"代码优先"或"代码先行"。
Code First模式将会基于编写的类和配置,自动创建模型和数据库。
一、准备工作
创建一个(.NetCore 类库),命名为NetCoreWebApi.Model。
通过Nuget程序包安装相关依赖
在类库项目上右键->管理NuGet程序包,下面会打开程序包管理器控制台窗口:
注意版本,因为本人NetCore 是2.2版本,所以程序包都选择了2.2.6
二、正式开始
根据.NET中的类来创建数据库。
在类库项目上右键->添加->新建文件夹,命名为Models,存放相应的实体类。在Models文件夹下面新建实体类:tb_user,实体类的属性如下:
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; namespace NetCoreWebApi.Model.Models
{
/// <summary>
/// 用户表
/// </summary>
[Table("tb_User")]
public class TbUser
{
/// <summary>
/// 用户Id
/// </summary>
[Key]
[Column("userId")]
[StringLength()]
public string UserId { get; set; }
/// <summary>
/// 用户名
/// </summary>
[Column("userName")]
[StringLength()]
public string UserName { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[Column("email")]
[StringLength()]
public string Email { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column("createTime")]
public DateTime CreateTime { get; set; }
}
}
创建数据上下文
在类库项目上右键->添加->类,命名为MyDbContext,并继承DbContext类,DbContext位Microsoft.EntityFrameworkCore.dll程序集中。
using Microsoft.EntityFrameworkCore;
using NetCoreWebApi.Model.Models; namespace NetCoreWebApi.Model
{
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
//定义数据集合:用于创建表
public DbSet<TbUser> TbUsers { get; set; }
}
}
在appsettings.json中加入连接字符串
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*",
//数据库连接字符串
"ConnectionStrings": {
"SqlServer": "Data Source=.;Initial Catalog=NetCoreWebApi;User Id=sa;Password=123;"
}
}
在Startup.cs类ConfigureServices方法中添加EF的依赖
/// <summary>
/// //负责注入服务
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public void ConfigureServices(IServiceCollection services)
{
//获取数据库连接字符串
var connectionStr = Configuration.GetConnectionString("SqlServer");
services.AddDbContext<MyDbContext>
(options => options.UseSqlServer(connectionStr,
e => e.MigrationsAssembly("NetCoreWebApi.Model")));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
三、使用命令通过代码生成数据库
在程序包命令切换到NetCoreWebApi.Model中
先执行 Add-Migration InitialCreate
执行成功后会在项目中产生一个Migrations文件夹。里面有个快照文件和一个迁移的文件。
后执行 Update-DataBase
出现这个就是成功了。
数据库创建成功!