• EF Core 程序包管理控制台工具集
    • 安装工具集
    • 使用工具集
    • 命令
      • Add-Migration
      • Drop-Database
      • Get-DbContext
      • Remove-Migration
      • Scaffold-DbContext
      • Script-Migration
      • Update-Database

    EF Core 程序包管理控制台工具集

    EF Core 程序包管理控制台(PMC)工具集是通过 NuGet 的 程序包管理控制台 在 Visual Studio 中运行的。这些工具可以用于 .NET Framework 和 .NET Core 项目。

    提示

    没有使用 Visual Studio?EF Core 命令行工具是跨平台的,它可以在命令提示符下运行!

    安装工具集

    安装 Microsoft.EntityFrameworkCore.Tools NuGet 程序包就可以安装 EF Core 程序包管理控制台工具集。可以在 程序包管理控制台 中执行以下命令来实现安装。

    1. Install-Package Microsoft.EntityFrameworkCore.Tools

    如果一切工作正常,你应该能够运行这样的命令:

    1. Get-Help about_EntityFrameworkCore

    提示

    如果你的启动项目指向 .NET Standard,请在使用工具集前交叉指向已支持的框架。

    重要提示

    如果你正在使用 Windows 通用(Universal Windows) 或 Xamarin,请将你的 EF Core 代码移动到一个 .NET Standard 类库中,然后在使用工具集前交叉指向已支持的框架。将这个类型库指定为你的启动项目。

    使用工具集

    任何时候只要调用命令,都会牵涉到两个项目:

    目标项目是任何文件添加到的地方(一些情况是移除文件)。默认情况下目标项目就是程序包管理控制台中选中的默认项目,但是可以使用 -Project 参数来临时指定另一个项目。

    启动项目是执行项目代码时由工具模拟的,默认就是解决方案资源管理器中通过 设置为启动项目 设置的项目,但是可以使用 -StartupProject 参数来临时指定另一个项目。

    通用的参数:
    |||
    |:—-:|:—-:|
    |-Context <String>|使用的 DbContext|
    |-Project <String>|使用的项目|
    |-StartupProject <String>|使用的启动项目|
    |-Verbose|显式详细输出|

    使用 Get-Help PowerShell 命令可以显式某个命令的帮助信息。

    提示

    Context、Project 和 StartupProject 参数支持 标签扩展(tab-expansion,这里说的应该是快捷键)。

    提示

    在运行前设置 env:ASPNETCORE_ENVIRONMENT 可以指定 ASP.NET Core 环境。

    命令

    Add-Migration

    添加新的迁移。

    参数:

    -Name <String> 迁移的名称
    -OutputDir <String> 使用的目录(及其子名称空间)。路径是相对于项目目录的。默认是 “Migrations”。

    注意

    加粗 的参数是必须的,斜体 的参数则是可选的

    Drop-Database

    删除数据库。

    参数:

    -WhatIf 显式将要删除的数据库,但还不会删除它

    Get-DbContext

    获取 DbContext 类型的信息。

    Remove-Migration

    移除最近一个迁移。

    参数:

    -Force 移除迁移前通常需要验证其是否已经应用到了数据库。使用该参数可跳过验证参数可跳过验证。

    Scaffold-DbContext

    为数据库搭建 DbContext 和实体类型的基架。

    参数:

    -Connection <String> 数据库的连接字符串
    -Provider <String> 使用的提供程序。(比如 Microsoft.EntityFrameworkCore.SqlServer)
    -OutputDir <String> 放置基架文件的目录。路径是相对于项目目录的。
    -Context <String> 生成 DbContext 的名称
    -Schemas <String[]> 仅生成指定数据库模式中的表对应的实体类型
    -Tables <String[]> 仅生成指定数据表对应的实体类型
    -DataAnnotations 生成的模型尽可能使用特性(数据注解)配置。缺省时仅生成流式 API 配置代码。
    -UseDatabaseNames 直接使用数据库中的表名和列名生成相关名称。
    -Force 覆盖已有的文件。

    Script-Migration

    根据迁移(段)生成 SQL 脚本

    参数:

    -From <String> 起始迁移。默认是 0(初始化数据库)。
    To <String> 结束迁移。默认是最近一个迁移。
    -Idempotent 为涉及到的迁移生成一个可以在数据库上使用的脚本。
    -Output <String> 脚本输出到的文件。

    提示

    To、From 和 Output 参数都支持标签扩展(tab-extension)。

    Update-Database

    -Migration <String> 要应用的迁移。设置为 “0” 时应用所有迁移。默认为最近一个迁移。

    提示

    迁移参数支持选项扩展(tab-extension)。