.net core +codefirst(.net core 基礎入門,適合這方面的小白閱讀,本文使用mysql或mssql)

設置爲model所在的那一層 mysql

 

前言 

 .net core mvc和 .net mvc開發很類似,好比 視圖-模型-控制器結構。因此.net mvc開發員很容易入手.net core mvc 。可是兩個又有細微的區別,好比配置.net mvc中Web.config和Global.asax消失,而在.net core mvc中則是Startup.cs、Program.cs、appsettings.json等等。因此想要深刻了解.net core就必須更加深刻的學習。而剛剛開始的學習則是經過創建一個鏈接數據庫的demo開始。因爲配置文件的不一樣,致使不少新手在鏈接數據庫,或者使用codeFisrt開發殊不知道怎麼配置。因此我在這裏較爲詳細的寫一個demo提供給須要此方面的博友。(若有不正確地方歡迎各位指正)sql

開發工具vs2017數據庫

數據庫  mssql2014json

.net core環境 .net core2.1mvc

1】先創建model層

  1.1先創建一個空白方案app

而後創建一個內庫,用來存放model:注意選擇內庫(.net core)ide

  1.2在model層添加內容工具

如今nuget中分別引用:Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools,注意二者版本號最好相同,以避免出錯學習

  而後加入model和數據庫的上下文類DataBase(這個名字本身隨意取),我在這裏先只創建一個user表(注意在DataBase中須要開發工具

using Microsoft.EntityFrameworkCore;)

public class DataBase : DbContext
    {
        //構造方法
        public DataBase(DbContextOptions<DataBase> options)
            : base(options)
        { }

        #region 數據區域
        public DbSet<User> User { get; set; }
        #endregion

    }
View Code

 

至此,model層配置完畢

2】開始創建.net core項目

先創建一個.net core項目

項目創建完畢以後先引用model層

而後進入Startup.cs配置數據庫鏈接,這裏首先引用using Microsoft.EntityFrameworkCore;和model層 using Modelx;而後配置鏈接

注意services.AddDbContext<DataBase>中的DataBase是model層中的  數據庫的上下文類,別弄錯了

以上所有完成,而後添加一個例子看看效果,在任意一個控制器中寫入如下代碼而後運行(.net core 的一個好處就是內置依賴注入)

這時,會發現程序報錯

原來,.net core 和.net mvc相比,在使用codefirst時候,除了配置文件以外,.net core 還須要在控制檯中執行如下兩行代碼

【注意每次修改數據庫都須要執行這兩段命令,每次執行 Add-Migration 後面名字必須不一樣】

 先輸入:Add-Migration  MyFirstMigration(名字。這裏隨意取未MyFirstMigration)

 在輸入:Update-Database  
View Code

首先咱們打開控制檯:

先輸入:Add-Migration  MyFirstMigration而後回車等待運行完畢

而後輸入:Update-Database  回車,等到所有運行完畢以後,再運行項目看看,就發現項目正常運行,以及數據庫正常生成

 

注意若是輸入  Add-Migration  MyFirstMigration出現Build failed則說明Microsoft.EntityFrameworkCore.Tools版本太高,和當前其餘插件的版本不匹配,建議使用2.14

 

 

3】ps:關於鏈接數據庫的第二種方法。

關於上文鏈接數據庫,或許有人會問:和本身鏈接的不太同樣,.net core 鏈接字符串不是應該寫在appsettings.json裏面?下面,我就將鏈接數據庫的第二種方法寫在下面,畢竟多多益善

 

 若是想嘗試這種方法的話,別忘了在控制檯輸入

先輸入:Add-Migration MyFirstMigrations(名字,爲了和上面區分,這裏加了s)

在輸入:Update-Database

 

 4】ps:關於鏈接mysql數據庫。

首先在model層的nuget中引入 Microsoft.EntityFrameworkCore.Tools和 Pomelo.EntityFrameworkCore.MySql(圓圈是鏈接mssql必備、方塊是鏈接mysql必備)

 

 

而後返回ui層的appsettings.json中修改鏈接字符串

 

而後進入Startup.cs注入上下文

 

 最後,在系統運行以前別忘記在nuget控制檯中運行那兩行命令

爲遷移搭建基架運行:Add-Migration MyFirstMy

將新遷移應用到數據庫運行:Update-Database

另外,須要注意的是,在默認項目這裏選擇你mode層的名字,否者運行錯誤

 

當以上所有完成以後,在運行程序,而後去看mysql數據庫

 

建議各位手打一次,加深印象。若是想偷懶的,付出代價(2積分)吧

https://download.csdn.net/download/qq_36215047/10824784 源碼地址

--------------------------------------分界線 2018-12-10  ------------------------------------------------------------------

錯誤記錄 1

 Unable to create an object of type 'DataBaseContext'. Add an implementation of 'IDesignTimeDbContextFactory<DataBaseContext>' to the project, or see  https://go.microsoft.com/fwlink/?linkid=851728 for additional patterns supported at design time.

若是輸入Add-Migration  出現這個錯誤,請把ui層設置爲啓動項,而後在輸入 Add-Migration MyFirstMy,注意

 

 

若是以爲本文對你有用的話,幫忙在最下方點個推薦吧∑(っ°Д°;)っ

相關文章
相關標籤/搜索