Code First模式 Code First是指"代碼優先"或"代碼先行"。 Code First模式將會基於編寫的類和配置,自動創建模型和資料庫。 一、準備工作 創建一個(.NetCore 類庫),命名為NetCoreWebApi.Model。 通過Nuget程式包安裝相關依賴 在類庫項目上右鍵 ...
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(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
出現這個就是成功了。
資料庫創建成功!