1/ Install packages
EF Core tools:
Install-Package Microsoft.EntityFrameworkCore.Tools
SQL Server data provider for EF Core:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
2/ Scaffolding
Powershell command (run from Powershell or Package Manager console):
Scaffold-DbContext “Data Source=Your_Database_Name;Initial Catalog=AdventureWorks2017;Integrated Security=true;” -Provider Microsoft.EntityFrameworkCore.SqlServer -Context AdventureWorkContext -OutputDir ./Entities
Arguments:
- Connection string to the database where resides model/ schema to reverse engineer
- Provider : underlying data provider for entity framework, which helps connect to database, execute commands and retrieve results from database.
- Context : name of the DbContext to create, default to database’s name
- OutputDir : output of scaffolded entities (CLR types), folder will be created if not exists. If not specified, default is solution root.
Notes: error at several first attempts: The specified deps.json [C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\bin\Debug\netcoreapp3.1\DBFirst.deps.json] does not exist
Resolved after several attempts to run the scaffold command. (Try removing bin, obj folders)
3/ Update model
The same scaffolding command with -Force flag:
Scaffold-DbContext “Data Source=Your_Database_Name;Initial Catalog=AdventureWorks2017;Integrated Security=true;” -Provider Microsoft.EntityFrameworkCore.SqlServer -Context AdventureWorkContext -OutputDir ./Entities -Force
Notes: All entities will be overridden, any changes made to entities will be lost.