欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

由数据库表在 ASP.NET Core项目上生成 EF Core

程序员文章站 2022-06-02 22:28:47
...
通过现有数据库在 ASP.NET Core 上生成 EF Core

1、新建基于MVC框架的ASP.NET coreWeb项目
2、“工具”–>“NuGet 包管理器”–>“包管理器控制台”,输入以下命令,红色部分应该不难看出如何修改
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

如果在开发过程中数据库表有更新,需要同步models则只需在以上命令行尾部增加 -force
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force
注意:此方法会整体覆盖Models中原有的文件,如果原有文件有改动,则比较麻烦。

大小写转换,不和数据库一样了,如果要保持和数据库一致。增加 -usedatabasename即可。
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force -usedatabasename
如果某个表字段有更新需要重新生成将则需要将上下文类和对应的表类删除,重新生成
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -force -usedatabasename -Tables("Post")



工具的scaffold-dbcontext(数据库上下文脚手架)指令来生成models和context。

指令详细介绍:

Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>]
[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>]
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]

PARAMETERS
-Connection <String>
指定数据库的连接字符串。

-Provider <String>
指定要使用的提供程序。例如,Microsoft.EntityFrameworkCore.SqlServer。

-OutputDir <String>
指定用于输出类的目录。如果省略,则使用*项目目录。

-Context <String>
指定生成的DbContext类的名称。

-Schemas <String>
指定要为其生成类的模式。

-Tables <String>
指定要为其生成类的表。

-DataAnnotations [<SwitchParameter>]
使用DataAnnotation属性在可能的情况下配置模型。如果省略,输出代码将仅使用流畅的API。

-Force [<SwitchParameter>]
强制脚手架覆盖现有文件。否则,只有在没有输出文件被覆盖的情况下,代码才会继续。

-Project <String>
指定要使用的项目。如果省略,则使用默认项目。

-StartupProject <String>
指定要使用的启动项目。如果省略,则使用解决方案的启动项目。

-Environment <String>
指定要使用的环境。如果省略,则使用“开发”。