与之前版本的 Entity Framework 相同,Entity Framework Core 中是否可以仅对选定的表进行反向工程,以创建相应的模型类。这个官方 ASP.NET 网站将整个数据库进行反向工程。在过去,正如这个 ASP.NET 教程所演示的,使用旧版 EF,您可以选择只反向工程选定的表/视图。
-t
(--table
) 参数,可以指定导入(脚手架化)的所有表。该功能最初在这里描述:这里。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中的包管理器控制台:
Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila"
MySql.Data.EntityFrameworkCore -OutputDir Sakila
-Tables actor,film,film_actor,language -f
Force标签将更新输出目录中现有的所选模型/文件。
Scaffold-DbContext "Server=(localdb)\v11.0;Database=MyDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -t User, Role -f
.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中的包管理器控制台:
Scaffold-DbContext "server=localhost;port=3306;user=root;password=mypass;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir Sakila -Tables actor,film,film_actor,language -f
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
包管理器控制台(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,默认的数据库目录是您的项目文件夹...即控制器文件夹所在的位置。
-Tables table1, table2, table3参数适用于需要处理多个表的情况。 -o Model参数是生成模型所在文件夹的输出路径。 -force参数可以每次启动时重新生成模型,例如更新数据库。 -Context DbE参数可以重命名数据库上下文类。
包管理器控制台
Scaffold-DbContext name=ConnectionStrings:DbE Microsoft.EntityFrameworkCore.SqlServer -o Model -force -Tables T_Users_Of_Chat -Context DbE