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
出現這個就是成功了。
數據庫建立成功!