EF Core 程序包管理控制台工具集
EF Core 程序包管理控制台(PMC)工具集是通过 NuGet 的 程序包管理控制台 在 Visual Studio 中运行的。这些工具可以用于 .NET Framework 和 .NET Core 项目。
提示
没有使用 Visual Studio?EF Core 命令行工具是跨平台的,它可以在命令提示符下运行!
安装工具集
安装 Microsoft.EntityFrameworkCore.Tools NuGet 程序包就可以安装 EF Core 程序包管理控制台工具集。可以在 程序包管理控制台 中执行以下命令来实现安装。
Install-Package Microsoft.EntityFrameworkCore.Tools
如果一切工作正常,你应该能够运行这样的命令:
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)。