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 添加新的迁移
参数:
参数 | 说明 |
---|---|
-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-DbContext
从 DbContext 生成 SQL 脚本。 绕过任何迁移。 在 EF Core 3.0 中添加。
参数:
参数 | 说明 |
---|---|
-输出 <String> | 要向其写入结果的文件。 |
Script-Migration 生成一个 SQL 脚本,该脚本将所选迁移中的所有更改应用于另一个选定的迁移。
参数:
参数 | 说明 |
---|---|
-来自<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 将数据库更新到上次迁移或指定迁移。
参数 | 说明 |
---|---|
-迁移<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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现