如何使用asp.net Core更改迁移的输出文件夹?

Den*_*and 38 asp.net entity-framework command-line-interface asp.net-core

有谁知道如何更改以下命令的输出目录:

dotnet ef  migrations add Initial --context EsportshubApi.Models.ApplicationDbContext
Run Code Online (Sandbox Code Playgroud)

??

我试图添加选项:

--content-root-path 'Migrations/Identity' 
Run Code Online (Sandbox Code Playgroud)

但那没有做任何事情.还有一个--data-dir选项以及其他与目录相关的选项,但它们都不是迁移的输出.

我的问题是我有2个DbContexts所以我希望他们的迁移分开.

Jér*_*VEL 56

dotnet ef  migrations add Initial --context EsportshubApi.Models.ApplicationDbContext -o YourFolderPath
Run Code Online (Sandbox Code Playgroud)

资源

dotnet ef迁移添加

添加新迁移.

参数:

<NAME>迁移的名称.

选项:

-o --output-dir <PATH>要使用的目录(和子命名空间).路径相对于项目目录.默认为"迁移".

  • 同样有趣的事实是,在设置`--output`目录之后,例如`./ Config/Migrations`,即使没有参数,也会在文件夹中自动创建未来的迁移. (21认同)
  • 你知道如何在C#中设置文件夹吗?我不想每次都使用额外的参数. (2认同)
  • 在之前的EntityFramework版本中,您可以在`Configuration()`方法中设置迁移文件夹,并且`dotnet ef`命令可以编译应用程序,因此您完全可以使用C#设置迁移文件夹. (2认同)
  • @LeviFuller 有趣 (2认同)

Fer*_*ehy 10

Package Manager Console运行此命令:

PM> Add-Migration 001 -OutputDir "Data/Migrations"
Run Code Online (Sandbox Code Playgroud)

我的结构是:

.AspCoreProject
  -Data
    -Migrations
       20190721162938_001.cs
       MainDbContextModelSnapshot.cs
Run Code Online (Sandbox Code Playgroud)


Mal*_*eeb 5

在 EF Core 5.0 中,您可以自由移动迁移文件并手动更改其命名空间。新迁移被创建为上次迁移的同级。或者,您可以在生成时指定目录,如下所示:

.Net 核心 CLI

dotnet ef migrations add InitialCreate --output-dir Your/Directory
Run Code Online (Sandbox Code Playgroud)

电源外壳

Add-Migration InitialCreate -OutputDir Your\Directory
Run Code Online (Sandbox Code Playgroud)

EF Core 5.0 文档