EF Core DBFirst实体生成命令(Scaffold-DbContext连接SqlServer和PostgreSQL)

本文介绍了如何使用Scaffold-DbContext命令行工具,通过Npgsql.EntityFrameworkCore.PostgreSQL包,从PostgreSQL数据库生成API项目中的实体模型和上下文,包括指定连接参数、输出目录及表选择等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dbfirst Entity生成命令行:

Scaffold-DbContext "PORT=5435;DATABASE=DocumentDB;HOST=localhost;PASSWORD=1;USER ID=postgres;" Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir Entities -Tables "fsrd_plugingroup","fsrd_plugingroupfunction" -Context ApplicationContext -Contextdir Data  -Project BusinessOrg.API -StartupProject  BusinessOrg.API

Scaffold-DbContext

数据库上下文脚手架
在这里插入图片描述

//0.Nuget下載包
        //.Net Core 将默认DI改为Autofac
        //Install-Package Autofac.Configuration
        //Install-Package Autofac.Extensions.DependencyInjection
        //DBFirst开发步骤
        //Microsoft.EntityFrameworkCore
        //Microsoft.EntityFrameworkCore.Tools
        //Microsoft.EntityFrameworkCore.Design
        //Microsoft.EntityFrameworkCore.SqlServer
        //Microsoft.EntityFrameworkCore.SqlServer.Design
 
 
        //1.通过数据库将生成Model,调出【程序包管理控制台】,选择项目,输入以下命令 将数据库中所有表生成Model
        //Scaffold-DbContext "Server=120.27.16.5; Database=AppsDBDCE;Persist Security Info=True;User ID = sa; password=1qazXSW@;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
        //命令解析: 
        //Scaffold-DbContext “数据库连接字符串” Microsoft.EntityFrameworkCore.SqlServer -OutputDir 输出的文件夹, 如无此参将生成到项目根目录
        //如果只想生成某些表将使用Tables参数 如: -Tables(“table1”,”table2”,”table3”,”table4”)
        //其他参数可输入 Scaffold-DbContext -? 查看帮助.
 
        //postgresql数据库
        //1、安装包
        //Npgsql
        //Npgsql.EntityFrameworkCore.PostgreSQL
        //Npgsql.EntityFrameworkCore.PostgreSQL.Design
        //2、执行语句
        //PostGreSQL得时候:Scaffold-DbContext "Server=localhost;Database=postgresqlBase;User ID=postgres;Password=1qazXSW@;" Npgsql.EntityFrameworkCore.PostgreSQL -OutputDir PgSqlModels

scaffold-dbcontext 命令使用说明

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

指令详细介绍:

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> 

指定要使用的环境。如果省略,则使用“开发”。

例子:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

Scaffold-DbContext 命令使用

1、官网地址

https://docs.microsoft.com/zh-cn/ef/core/cli/powershell#scaffold-dbcontext

2.命令说明

Scaffold-DbContext

DbContext 数据库的和实体类型生成代码。 为了使 Scaffold-DbContext 生成实体类型,数据库表必须具有主键。
参数:

SCAFFOLD-DBCONTEXT
参数                            说明
-连接 <String>        用于连接到数据库的连接字符串。 对于 ASP.NET Core 2.x 项目,值可以是 name = <name of connection string> 。 
  在这种情况下,该名称来自为项目设置的配置源。 这是一个位置参数,并且是必需的。
-提供程序 <String>    要使用的提供程序。 通常,这是 NuGet 包的名称,例如: Microsoft.EntityFrameworkCore.SqlServer 。 这是一个位置参数,并且是必需的。
-OutputDir <String>     要在其中放置文件的目录。 路径相对于项目目录。
-ContextDir <String>    要在其中放置文件的目录 DbContext 。 路径相对于项目目录。
-命名空间 <String>     要用于所有生成的类的命名空间。 默认值为从根命名空间和输出目录生成。 在 EF Core 5.0 中添加。
-ContextNamespace <String>    要用于生成的类的命名空间 DbContext 。 注意:重写 -Namespace 。 在 EF Core 5.0 中添加。
-上下文 <String>    DbContext要生成的类的名称。
-架构 <String[]>    要为其生成实体类型的表的架构。 如果省略此参数,则包括所有架构。
-<String[]>      要为其生成实体类型的表。 如果省略此参数,则包括所有表。
-DataAnnotations    使用属性可在可能) 的情况下配置模型 (。 如果省略此参数,则只使用 Fluent API。
-UseDatabaseNames    使用表和列的名称与数据库中显示的名称完全相同。 如果省略此参数,则更改数据库名称以更严格地符合 c # 名称样式约定。
-Force               覆盖现有文件。
-NoOnConfiguring     不生成 DbContext.OnConfiguring 。 在 EF Core 5.0 中添加。
-NoPluralize         请勿使用复数化程序。 在 EF Core 5.0 中添加。

3、示例

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables "Blog","Post" -ContextDir Context -Context BlogContext -ContextNamespace New.Namespace
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值