.Net Core 2.0 EntityFrameworkCore CodeFirst入門教程


最近難得有時間閑下來,研究了一下.net core 2.0,總的來說,目前除了一些第三方的庫不支持外,基本上可以滿足我們的項目需求了!

我們就以一個網站開發為例,搭建一個簡單的三層架構,先熟悉一下.net core 2.0的開發流程!

 

 一 、搭建項目框架

 

首先,我們新建項目,如圖:

 

然后,我們分別添加.net core類庫項目,NetCoreDemo.Repository(數據訪問層)和NetCoreDemo.Service(服務層),項目結構如下:

 

 二 、初始化數據庫

項目中, NetCoreDemo.Repository相當於三層中的DAL層,主要是與數據庫交互!為了實現web項目和數據庫解耦,方便將來更好數據庫,我們在NetCoreDemo.Repository中安裝EntiryFrameWorkCore,這里我們以SQL Server為例,安裝下面兩個安裝包,在程序包管理控制台執行以下命名或者用Nuget包管理器安裝均可:

Install-package Microsoft.EntityFrameworkCore
Install-package Microsoft.EntityFrameworkCore.SqlServer

然后,我們新建DbContext類,如MyDbContext,繼承自DbContext,代碼如下:

using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;

namespace NetCoreDemo.Repository
{
    public class MyDbContext : DbContext
    {
        public MyDbContext(DbContextOptions<MyDbContext> options)
            : base(options)
        {
        }
        public DbSet<User> Uesrs { get; set; }
    }
}

這里,我們新建一個User類作為測試,代碼如下:

public class User
{
     [Key]
     public int Id { get; set; }
     public string UserName { get; set; }
     public string Password { get; set; }
}

 現在,DbContext建好了,下面我們連接數據庫,還差一個數據庫連接字符串,這個連接字符串我們通常是放在webconfig中的,那么.net core中應該放到哪里呢?

我們來到web項目下,看到有一個appsettings.json,里面內容如下:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

我們就把數據庫連接字符串放到這里吧,改完后,其內容如下:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ConnectionStrings": {
    "SqlServer": "Data Source=.;Initial Catalog=netcore;User Id=sa;Password=123456;"
  } 
}

既然我們是Code First,下面准備創建數據庫,生成表,執行Migration!

我們修改Startup.cs,修改ConfigureServices方法如下:

public void ConfigureServices(IServiceCollection services)
        {
            var connection = Configuration.GetConnectionString("SqlServer");
            services.AddDbContext<MyDbContext>(options =>
                options.UseSqlServer(connection, b => b.MigrationsAssembly("NetCoreDemo")));
            services.AddMvc();
        }

這里需要注意的是,我們通過Configuration方法讀取appsetting.json中的連接字符串,然后調用AddDbContext方法,把連接字符串傳進去,這里要設置MigrationsAssembly為當前web項目,(這里大家可以試一下不設置這個,會報一個錯誤),這是因為我們執行Migration是在web項目下,下面我們打開DOS窗口,開始 -> 運行 -> CMD,定位到web項目根目錄下,執行如下命令:

dotnet ef migrations add v1

這里,我們看到出現了錯誤,如圖:

這里,我們修改項目文件,在項目上面右鍵,打開項目文件,如圖:

 

在里面添加如下代碼(任意位置均可):

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
  </ItemGroup>

加完后,如圖:

 

然后,我們再次執行命令:

dotnet ef migrations add v1

如果出現Build faild的錯誤,重新生成一下項目,然后再次執行,執行成功后,如圖:

這一步成功了,也就意味着,我們后面的路會很順利了,下面我們更新到數據庫,執行命令:

dotnet ef database update

等待一小會兒,執行成功后,我們會發現數據庫中已經生成了我們的數據庫和表了,這里我就不截圖了,上傳圖片實在是太慢了~~

 

 三 、后續工作

 上面,我們已經完成了數據庫的創建,后面就可以開開心心的寫代碼了~~

 

 作者:雲霏霏

QQ交流群:243633526

 博客地址:http://www.cnblogs.com/yunfeifei/

 聲明:本博客原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關系。非商業,未授權,貼子請以現狀保留,轉載時必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

如果大家感覺我的博文對大家有幫助,請推薦支持一把,給我寫作的動力。

 


免責聲明!

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



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