我们可以从现有数据库的选定表中Scaffold DbContext吗?

时间:2016-08-21 15:18:00

标签: asp.net-mvc entity-framework visual-studio-2015 asp.net-core asp.net-mvc-scaffolding

与以前版本的Entity Framework一样,Entity Framework Core中是否可以仅对现有数据库的选定表进行反向工程,以便从中创建模型类。 This official ASP.NET site对整个数据库进行反向工程。在过去as shown in this ASP.NET tutorial中,如果您选择使用旧版EF,则只能对所选表格/视图进行反向工程设计。

4 个答案:

答案 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 目录是您的项目文件夹...控制器文件夹所在的位置