EF Core 基于包管理器控制台生成模型(1)

本文介绍了如何使用Entity Framework Core的包管理器控制台工具进行安装、更新、验证以及执行各种数据库操作,如添加迁移、删除数据库、获取DbContext信息等。详细阐述了每个命令的参数及其用途,帮助开发者更好地管理和维护数据库。
摘要由CSDN通过智能技术生成

安装工具

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值