【问题标题】:How is the location of the migrations folder determined?迁移文件夹的位置是如何确定的?
【发布时间】:2022-02-05 17:42:46
【问题描述】:

有谁知道迁移文件夹的位置是如何确定的。

事后我添加了我的数据文件夹。但现在我已经结束了:

数据\\迁移文件夹是我希望迁移的地方。但是,正如你所看到的,他们正在迁移文件夹脱离根目录。

  • 您是如何创建迁移的?
  • @Charles:我刚刚创建了我的模型和ApplicationDbContext 类并使用了add-migration
  • @SirRufo:我不想在每次添加或删除迁移时都输入文件夹。
  • @JonathanWood 这听起来像是世界上第一个问题。您多久添加或删除一次无法将行存储在文本文件中或在某处的代码中作为注释的迁移。

标签: c# entity-framework entity-framework-core ef-code-first entity-framework-migrations


【解决方案1】:

添加迁移命令的迁移文件夹由命令的相应输出目录参数确定(--output-dir-o 用于 CLI dotnet ef migrations add-OutputDir 用于 PMC Add-Migration)。正如这两个命令的文档中所解释的:

用于输出文件的目录。路径是相对于目标项目目录的。默认为“迁移”。

因此,您必须提供该参数,例如

Add-Migration SomeMigration -OutputDir Data\Migrations

请注意,这也会更改迁移类名称空间。

现在,文档中没有提到的很酷的事情是您只需执行一次,因为下一个添加迁移命令实际上默认为最后一个迁移文件夹。

话虽如此,最好的办法是为您添加的第一个迁移指定此项。

如果您想使用问题中所示的已添加迁移来修改现有项目,则手动将整个根“迁移”文件夹移动到“数据”,然后可以选择更改其中所有 .cs 文件的命名空间(包括 @ 987654330@) 到namespace {RootNamespace}.Data.Migrations,你就完成了。下一次迁移将添加到那里,而无需指定文件夹。

【讨论】:

  • 谢谢。我将现有的迁移移动到我想要的文件夹并相应地更改了所有命名空间。当我创建一个新的迁移时,它把它放在新文件夹中并给它新的命名空间。所以它必须以某种方式搜索其中一些现有的类来确定迁移应该去哪里。
  • ?独角兽魔法!
猜你喜欢
  • 2012-01-22
  • 2018-03-07
  • 2013-08-21
  • 2019-07-27
  • 1970-01-01
  • 2019-01-02
  • 2011-04-22
  • 2021-08-09
  • 1970-01-01
相关资源
最近更新 更多