Code First模式数据库
Code First是指"代码优先"或"代码先行"。json
Code First模式将会基于编写的类和配置,自动建立模型和数据库。app
建立一个(.NetCore 类库),命名为NetCoreWebApi.Model。spa
经过Nuget程序包安装相关依赖 3d
在类库项目上右键->管理NuGet程序包,下面会打开程序包管理器控制台窗口:code
注意版本,由于本人NetCore 是2.2版本,因此程序包都选择了2.2.6blog
根据.NET中的类来建立数据库。继承
在类库项目上右键->添加->新建文件夹,命名为Models,存放相应的实体类。在Models文件夹下面新建实体类:tb_user,实体类的属性以下:element
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(32)] public string UserId { get; set; } /// <summary> /// 用户名 /// </summary> [Column("userName")] [StringLength(20)] public string UserName { get; set; } /// <summary> /// 邮箱 /// </summary> [Column("email")] [StringLength(30)] 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
出现这个就是成功了。
数据库建立成功!