EF技巧 1 建立DbContext

2021-10-05 01:18:00 字數 1739 閱讀 7054

由於本人太懶,使用ef時真的懶得寫那麼多重複的**。在基於dbfirst的時候,還是希望通過一定的方法就建立簡單dbcontext。

此方法有個前提,就是要先引入nuget包:

install-package microsoft.entityframeworkcore.tools
或者對相應的model專案右鍵-選擇 程式包管理,輸入microsoft.entityframeworkcore.tools

安裝成功後

在 程式包管理器控制台 中

輸入以下命令:

scaffold-dbcontext 「server=(localdb)\mssqllocaldb;database=dbname;trusted_connection=true;」 microsoft.entityframeworkcore.sqlserver -outputdir models

簡單解釋一下

引數描述

-connection

資料庫連線串,必填引數

-provider

database provider,通常來說這是nuget包的名稱,例如microsoft.entityframeworkcore.sqlserver。必填引數

-outputdir

放檔案的目錄,路徑是基於選擇的專案下的路徑。 非必填引數

-contextdir

放dbcontext檔案的目錄,路徑是基於選擇的專案下的路徑。非必填引數

-context

生成dbcontext類時的類名。非必填引數

-schemas

要為其生成實體型別的表的模式。 如果省略此引數,則包括所有模式。

-tables

為其生成實體型別的表。 如果省略此引數,則包括所有表。

-dataannotations

使用屬性來配置模型(如果可能)。 如果省略此引數,則僅使用流暢的api。

-usedatabasenames

完全按照在資料庫中顯示的方式使用表名和列名。 如果省略此引數,則更改資料庫名稱以使其更符合c#名稱樣式約定。

-force

覆蓋已存在的檔案

參考文章:ef core tool 引用

由於這個方法並非本人原創的,先放個鏈結。

因此我先說下引用這個方法的主要原因,因為我們建立dbcontext時要建立的dbset是基於表的數量,如果表數量超過20個還需要自己逐個寫dbset就比較麻煩。

因此,該方法依舊需要手動建立dbcontext,在onmodelcreating中使用了反射的方式,主動建立dbset

protected

override

void

onmodelcreating

(modelbuilder modelbuilder));

method.

invoke

(modelbuilder,

null);

}}}base

.onmodelcreating

(modelbuilder)

;}

其實寫這些都只是為了程式設計更加方便,如果之後有更方便的方法會繼續新增。

1 搭建DDD架構 EF

1 建立空白解決方案,建4個資料夾 core domain services web 2 core domain services web各新建乙個類庫,且web下多建乙個mvc專案 3 新增各級的引用 project引用其他4個專案,framework引用其他三個專案,service引用其他兩個專...

資料庫EF方法建立連線

什麼是ef entity framework 是乙個微軟推出的orm框架 ef用來替換 to sql 第一步 建立資料庫的連線 第二步 選擇從資料庫生成 第三步 選擇新建連線 第四步 選擇屬性,這裡自己寫 第五步 選擇資料連線,因為關聯到姓名就打了馬賽克 第六步 選擇連線的物件 第七步 這個安全警告...

EF查詢建立上下文實體物件

ef查詢上下文實體物件在多執行緒模式下必須得乙個方法對應乙個例項,即 新增 consumerecord public void addconsumerecord consumerecord data 不能夠使用下面這種的方式建立物件例項,即 private consumerecordmodelcon...