EF Core 2.0中怎么用DB First通過數據庫來生成實體


要在EF Core使用DB First首先要下載三個Nuget包,在Nuget的Package Manager Console窗口中依次敲入下面三個命令即可:

Microsoft.EntityFrameworkCore.SqlServer

Install-Package Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

Install-Package Microsoft.EntityFrameworkCore.Tools

Microsoft.EntityFrameworkCore.SqlServer.Design

Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

當然你也可以用圖形化的Nuget包管理器來下載這三個程序包。

之后在Package Manager Console中敲入如下命令,即可在項目中生成數據庫各個表的相應Entity和DbContext:

Scaffold-DbContext "Server=localhost;User Id=sa;Password=1qaz!QAZ;Database=TestDB" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f

其中-OutputDir 可以聲明在項目的某個文件夾路徑下生成所有實體,上例中我們就將所有數據庫實體生成到了Entities這個文件夾下,-f參數表示如果以前已經生成過實體文件了,那么就強制覆蓋以前生成的文件,如果不用-f參數,在-OutputDir的路徑下如果有同名的實體文件那么上面的命令會報錯,導致生成失敗。

另外也可以用-t參數來聲明,只生成數據庫中一張表的實體:

Scaffold-DbContext "<ConnectionString>" Microsoft.EntityFrameworkCore.SqlServer -t <tablename> -f

還可以使用-Context參數來聲明生成DbContext類的名字,-Schemas參數來聲明只為某些SCHEMA下的數據庫對象(表、視圖等)生成實體類,如下所示:

Scaffold-DbContext "Server=localhost;User Id=sa;Password=1qaz!QAZ;Database=TestDB" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f -Context MyDbContext -Schemas "dbo","RAW","src"

可以參考:To handle multiple schemas in one DBContext

 

Scaffold-DbContext命令的所有參數解釋可以參考這里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM