与以前版本的Entity Framework一样,Entity Framework Core中是否可以仅对现有数据库的选定表进行反向工程,以便从中创建模型类。 This official ASP.NET site对整个数据库进行反向工程。在过去as shown in this ASP.NET tutorial中,如果您选择使用旧版EF,则只能对所选表格/视图进行反向工程设计。
答案 0 :(得分:18)
可以通过dotnet ef dbcontext scaffold命令使用多个参数-t
(-table
)来解决问题。它允许指定导入所需的所有表(scaffolded)。该功能最初描述为here。
答案 1 :(得分:4)
.NET Core CLI:
dotnet ef dbcontext scaffold "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -o sakila -t actor -t film -t film_actor -t language -f
Visual Studio中的Package Manager控制台:
Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir Sakila -Tables actor,film,film_actor,language -f
EF Core,MS SQL PM:
Scaffold-DbContext "server=PC\SQL2012;user=test;password=test123;database=student" Microsoft.EntityFrameworkCore.SqlServer -OutputDir student-Tables stu.names,stu.grades -f
更多参考,请访问entityframework-core-scaffold
答案 2 :(得分:1)
Force标签将更新输出中现有的选定模型/文件 目录。
Scaffold-DbContext "Server=(localdb)\v11.0;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t User, Role -f
答案 3 :(得分:0)
包管理器控制台 (MySql)
Scaffold-DbContext "server=localhost;port=3306;user=root;password=yourpassword;database=sakila" MySql.EntityFrameworkCore -OutputDir Models -Tables actor,film,film_actor,language -f
包管理器控制台 (MSSQL)
Scaffold-DbContext "Server=desktop-vd5sscb;Initial Catalog=databaseName;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f
包管理器控制台 (Sqlite)
Scaffold-DbContext "data source = yourdbname" Microsoft.EntityFrameworkCore.Sqlite -OutputDir Models -f
对于 Sqlite,默认的 db 目录是您的项目文件夹...控制器文件夹所在的位置