Entityframework常用命令

ASP.NET Core 环境

若要为 ASP.NET Core 项目指定 环境 ,请在运行命令之前设置 env: ASPNETCORE_ENVIRONMENT 。

从 EF Core 5.0 开始,还可以将其他参数传递到 CreateHostBuilder,以便在命令行上指定环境:

PowerShell复制

Update-Database -Args '--environment Production'

通用参数

下表显示了所有 EF Core 命令共有的参数:

通用参数
参数说明
-上下文 <String>要使用的 DbContext 类。 仅命名空间或完全限定类名。 如果省略此参数,EF Core 将查找上下文类。 如果有多个上下文类,则此参数是必需的。
-项目 <String>目标项目。 如果省略此参数,则 包管理器控制台 的 默认项目 将用作目标项目。
-StartupProject<String>启动项目。 如果省略此参数,则使用 解决方案属性 中的 启动项目 作为目标项目。
-参数 <String>传递给应用程序的参数。 在 EF Core 5.0 中添加。
-Verbose显示详细输出。

Add-Migration  添加新的迁移

参数:

ADD-MIGRATION
参数说明
-Name <String>迁移的名称。 这是一个位置参数,并且是必需的。
-OutputDir <String>用于输出文件的目录。 路径相对于目标项目目录。 默认值为 "迁移"。
-命名空间 <String>要用于生成的类的命名空间。 默认为从输出目录生成。 在 EF Core 5.0 中添加。

Drop-Database 删除数据库

参数:

DROP-DATABASE
参数说明
-WhatIf显示要删除的数据库,但不删除它。

Get-DbContext  列出并获取有关可用 DbContext 类型的信息。

Get-Migration 列出可用迁移。 在 EF Core 5.0 中添加。

参数:

GET-MIGRATION
参数说明
-连接 <String>用于连接到数据库的连接字符串。 默认值为 AddDbContext 或 OnConfiguring 中指定的值。
-NoConnect请勿连接到数据库。

Remove-Migration 删除上一次迁移 (回滚对迁移) 所做的代码更改。

参数:

REMOVE-MIGRATION
参数说明
-Force还原迁移 (回滚应用于数据库的更改) 。

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 中添加。

示例:

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

示例:仅基架选定的表,并在具有指定名称和命名空间的单独文件夹中创建上下文:

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

下面的示例使用 机密管理器工具从项目的配置中读取连接字符串。

Scaffold-DbContext "Name=ConnectionStrings:Blogging" Microsoft.EntityFrameworkCore.SqlServer

Script-DbContext

从 DbContext 生成 SQL 脚本。 绕过任何迁移。 在 EF Core 3.0 中添加。

参数:

SCRIPT-DBCONTEXT
参数说明
-输出 <String>要向其写入结果的文件。

Script-Migration 生成一个 SQL 脚本,该脚本将所选迁移中的所有更改应用于另一个选定的迁移。

参数:

SCRIPT-MIGRATION
参数说明
-来自<String>开始迁移。 可以按名称或 ID 识别迁移。 数字0是一个特殊情况,表示在 第一次迁移之前。 默认值为 0。
-到<String>结束迁移。 默认为上次迁移。
-幂等生成可用于任何迁移的数据库的脚本。
-NoTransactions不生成 SQL transaction 语句。 在 EF Core 5.0 中添加。
-输出 <String>要向其写入结果的文件。 如果省略此参数,则会在创建应用的运行时文件所在的同一文件夹中创建具有生成名称的文件,例如: /obj/Debug/netcoreapp2.1/ghbkztfz.sql/

 提示 
To、From 和 Output 参数支持选项卡扩展。

下面的示例使用迁移名称,为 InitialCreate 迁移 (从数据库创建一个脚本,而无需迁移) 。

Script-Migration 0 InitialCreate

以下示例使用迁移 ID,为 InitialCreate 迁移后的所有迁移创建一个脚本。

Script-Migration 20180904195021_InitialCreate

Update-Database 将数据库更新到上次迁移或指定迁移。

UPDATE-DATABASE
参数说明
-迁移<String>目标迁移。 可以按名称或 ID 识别迁移。 数字0是一种特殊情况,表示在 第一次迁移之前 ,并导致还原所有迁移。 如果未指定迁移,则该命令默认为上一次迁移。
-连接 <String>用于连接到数据库的连接字符串。 默认为或中指定的 AddDbContext 一个 OnConfiguring 。 在 EF Core 5.0 中添加。

 提示迁移参数支持选项卡扩展。

下面的示例将还原所有迁移。

Update-Database 0

下面的示例将数据库更新为指定的迁移。 第一个使用迁移名称,第二个使用迁移 ID 和指定的连接:

Update-Database InitialCreate
Update-Database 20180904195021_InitialCreate -Connection your_connection_string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值