安装工具
在 Package Manager console 中运行以下命令,安装包管理器控制台工具
Install-Package Microsoft.EntityFrameworkCore.Tools
在 Package Manager Console 中运行以下命令,更新这些工具。
Update-Package Microsoft.EntityFrameworkCore.Tools
验证安装
通过运行以下命令验证是否已安装这些工具:
Get-Help about_EntityFrameworkCore
出现下图所示即表示安装成功
通用参数
参数 | 说明 |
-上下文 <String> | 要使用的 DbContext 类。 仅命名空间或完全限定类名。 如果省略此参数,EF Core 将查找上下文类。 如果有多个上下文类,则此参数是必需的。 |
-项目 <String> | 目标项目。 如果省略此参数,则 包管理器控制台 的 默认项目 将用作目标项目。 |
-StartupProject<String> | 启动项目。 如果省略此参数,则使用 解决方案属性 中的 启动项目 作为目标项目。 |
-参数 <String> | 传递给应用程序的参数。 在 EF Core 5.0 中添加。 |
-Verbose | 显示详细输出。 |
Add-Migration 添加新的迁移。
-Name <String> | 迁移的名称。 这是一个位置参数,并且是必需的。 |
-OutputDir <String> | 用于输出文件的目录。 路径相对于目标项目目录。 默认值为 "迁移"。 |
-命名空间 <String> | 要用于生成的类的命名空间。 默认为从输出目录生成。 在 EF Core 5.0 中添加。 |
Drop-Database 删除数据库。
参数 | 说明 |
-WhatIf | 显示要删除的数据库,但不删除它。 |
Get-DbContext 列出并获取有关可用 DbContext 类型的信息
Get-Migration 列出可用迁移。 在 EF Core 5.0 中添加。
-连接 <String> | 用于连接到数据库的连接字符串。 默认值为 AddDbContext 或 OnConfiguring 中指定的值。 |
-NoConnect | 请勿连接到数据库。 |
Remove-Migration 删除上一次迁移 (回滚对迁移) 所做的代码更改。
-Force | 还原迁移 (回滚应用于数据库的更改) 。 |
Scaffold-DbContext 为 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-Migration 生成一个 SQL 脚本,该脚本将所选迁移中的所有更改应用于另一个选定的迁移
参数 | 说明 |
-来自<String> | 开始迁移。 可以按名称或 ID 识别迁移。 数字0是一个特殊情况,表示在 第一次迁移之前。 默认值为 0。 |
-到<String> | 结束迁移。 默认为上次迁移。 |
-幂等 | 生成可用于任何迁移的数据库的脚本。 |
-NoTransactions | 不生成 SQL transaction 语句。 在 EF Core 5.0 中添加。 |
-输出 <String> | 要向其写入结果的文件。 如果省略此参数,则会在创建应用的运行时文件所在的同一文件夹中创建具有生成名称的文件,例如: /obj/Debug/netcoreapp2.1/ghbkztfz.sql/。 |
示例:下面的示例使用迁移名称,为 InitialCreate 迁移 (从数据库创建一个脚本,而无需迁移) 。
Script-Migration 0 InitialCreate
以下示例使用迁移 ID,为 InitialCreate 迁移后的所有迁移创建一个脚本
Script-Migration 20180904195021_InitialCreate
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