ASP.NET Core 2.2 WebApi 系列【二】使用EF CodeFirst創建數據庫


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

出現這個就是成功了。

數據庫創建成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM