迁移文件夹的位置是如何确定的?

How is the location of the migrations folder determined?

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

事后我添加了我的数据文件夹。但现在我得到了这个:

Data\Migrations 文件夹是我希望进行迁移的地方。但是,如您所见,它们位于根目录下的 Migrations 文件夹中。

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

The directory use to output the files. Paths are relative to the target project directory. Defaults to "Migrations".

所以你必须提供那个参数,例如

Add-Migration SomeMigration -OutputDir Data\Migrations

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

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

话虽如此,最好是在您要添加的第一个迁移中指定此项。

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