天天看點

EFCore DbFirst從資料庫生成實體類

1.點選“工具”->“NuGet包管理器”->“程式包管理器控制台”

分别安裝以下幾個包

Mysql 版本:

Install-Package MySql.Data.EntityFrameworkCore -Pre
Install-Package Pomelo.EntityFrameworkCore.MySql
Install-Package Microsoft.EntityFrameworkCore.Tools
           

Sql server 版本:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
           

2.在程式包包管理器控制台 中執行以下語句生成 實體類

–mysql 版本:

Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force

或者

Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force
           

server:資料庫位址,User Id:賬号,Password:登入密碼

如果是針對單表的更新,加一個-Tables 後面是要更新的表名

Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"  -Tables "myTable"
           

–sql server 版本:

Scaffold-DbContext "Data Source=.;Initial Catalog=EFCore_dbfirst;User ID=sa;Password=sa.123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

或者

一般用這個就行!!!!
Scaffold-DbContext "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
           

通用的指令格式

Scaffold-DbContext "資料庫連接配接字元串" EF元件名(Microsoft.EntityFrameworkCore.SqlServer/Pomelo.EntityFrameworkCore.MySql/等等) -OutputDir 輸出檔案夾名稱
           

參數說明:

-OutputDir *** 實體檔案所存放的檔案目錄
-ContextDir *** DbContext檔案存放的目錄
-Context *** DbContext檔案名
-Schemas *** 需要生成實體資料的資料表所在的模式
-Tables *** 需要生成實體資料的資料表的集合
-DataAnnotations
-UseDatabaseNames 直接使用資料庫中的表名和列名(某些版本不支援)
-Force 強制執行,重寫已經存在的實體檔案