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

Code First模式數據庫

Code First是指"代碼優先"或"代碼先行"。json

Code First模式將會基於編寫的類和配置,自動建立模型和數據庫。app

1、準備工做

建立一個(.NetCore 類庫),命名爲NetCoreWebApi.Model。spa

經過Nuget程序包安裝相關依賴 3d

在類庫項目上右鍵->管理NuGet程序包,下面會打開程序包管理器控制檯窗口:code

注意版本,由於本人NetCore 是2.2版本,因此程序包都選擇了2.2.6blog

2、正式開始

根據.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);
        }

 

3、使用命令經過代碼生成數據庫

在程序包命令切換到NetCoreWebApi.Model中

先執行 Add-Migration InitialCreate

執行成功後會在項目中產生一個Migrations文件夾。裏面有個快照文件和一個遷移的文件。

 

後執行 Update-DataBase

出現這個就是成功了。

數據庫建立成功!

相關文章
相關標籤/搜索