ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 10. 使用EF Core


支持的數據庫:能夠查看官方網站
https://docs.microsoft.com/en-us/ef/core/providers/

安裝了VS2017後會安裝了LocalDB,驗證localDB
在CMD輸入:sqllocaldb

現實當前存在的實例
sqllocaldb info



使用VS也能夠查看



appsettings.json配置數據庫連接字符串

把localDB的連接字符串複製到這裏

須要有一個類繼承DBContext這個類,有一些屬性DbSet,每個DbSet和數據中的一個表對應
sql

若是使用EFCore

默認按裝了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

相關文章
相關標籤/搜索