支持的數據庫:能夠查看官方網站
https://docs.microsoft.com/en-us/ef/core/providers/
安裝了VS2017後會安裝了LocalDB,驗證localDB
在CMD輸入:sqllocaldb
現實當前存在的實例
sqllocaldb info
使用VS也能夠查看
appsettings.json配置數據庫連接字符串
把localDB的連接字符串複製到這裏
須要有一個類繼承DBContext這個類,有一些屬性DbSet,每個DbSet和數據中的一個表對應
sql
默認按裝了AspNetCore.App裏面應該默認安裝了EFCore這裏搜一下
這裏已經包含了這麼多了,若是使用的是Sql server的默認基本就足夠了
測試命令,dotnet ef。說明ef沒問題
dotnet ef就是efCore的命令行工具
新建文件夾,並新建類DataContext
繼承這個DbContext。命名空間在上面引入
prop多是Resharper的快捷鍵,快速創建屬性
Resharper自動生成的屬性名,一般會加上s表示複數的形式
增長構造函數,配置連接到哪一個數據庫
ctor快捷鍵
把配置信息從構造函數傳進來
options的配置信息傳進來以後呢,要把它傳給他的父類。而後這DataContext的功能才完整了。
父類會處理這些配置信息,鏈接適當的數據庫
要使用這個DbContext,依賴注入的方式
它有個overload方法能夠配置他的參數,寫一個欄目大表達式,這個options有不少的方法,
這裏使用的方法是志明數據庫的類型
useSqlServer有個必填的參數就是數據庫的連接字符串
須要回去appSetting.json裏面的配置信息
startUp寫個構造函數,能夠注入一些服務
注入IConfiguration,
這裏又用到了Resharper,添加一個field
這個Configuration是在何時註冊完成的呢?是在這裏的CreateDefaultBuilder方法裏就已經註冊好了,因此在StartUp裏面可使用這個服務
有層級關係,曾與層之間應冒號;
把連接字符串春進去就能夠了
而後改一下數據庫連接字符串的 數據庫名稱:
這個表示使用windows驗證
另一種獲取連接字符串的方法GetConnectionString會去找ConnectionStrings下面的值
不用建立變量直接回去也是能夠的數據庫
15分32秒
json
若是使用VS2017 就在包管理工具的窗體內
若是使用cli 就在cmd窗體windows
遷移如要涉及到這兩個命令
執行遷移的命令
建立了Migrations文件夾,裏面有兩個文件,帶事件戳的是遷移文件,SnapShot是快照文件,快照文件不要手動去改,遷移文件在有的狀況下能夠稍作改動
Updaste-Database -Verbose
-Verbose:查看執行的明細過程
表就建立好 了。一個是Students表,一個是數據遷移的表
HomeController對接口有依賴,對具體的實現類沒有依賴
安全
新建類文件EFCoreRepository
注入DataContext
EF修改原來的代碼
修改成EFCoreRepository
這裏由於使用了DBContext,它不是線程安全的,AddSingleton確定會發生線程的問題修改成Scoped模式
每次http請求,生成一個新的實例。每次Http請求,能夠保證它是在一個線程裏,或者叫作一個邏輯線程內
清理,沒用的代碼
app.Run的代碼刪掉
配置文件裏清楚垃圾代碼
運行程序報錯
這裏去掉
app