这是有关在asp.net mvc 5中使用“Code First Migrations(代码优先迁移)”的略微奇怪的问题。我正在进行一个项目,使用手动迁移来更新我的数据库。如果我对模型中的任何内容做出了更改以更改数据库结构,则会进入程序包管理器控制台,并键入
add-migration "MigrationName"
但是在此过程中,我错误地为两个迁移命名。我想更正每个名称,但我想确保这不会影响它们的完整性,我只计划重命名文件名的第二部分(描述性部分),而不是时间戳。
例如,我有以下名称:
201411190809335_CreateStageTypeRender
但实际应该为:
201411190809335_CreateSeatingTypeRender
如果现在不更改名称,将来可能会通过错误的名称对其进行操作。
似乎,在以前没有重要项目的情况下重命名时,当我重命名时Visual Studio会自动重命名任何子文件(.cs, .resx)。因此,这似乎不是一个问题,而且时间戳仍然保持同步,以便按顺序排列。
问题:还有其他什么需要考虑的吗? 是否可以重命名迁移文件名的描述性部分?
顺便说一下,我也可以进入Designer.cs文件并将获取返回值重命名为:
public sealed partial class CreateStageTypeRender : IMigrationMetadata
private readonly ResourceManager Resources = new ResourceManager(typeof(CreateStageTypeRender));
string IMigrationMetadata.Id
{
get { return "201411190809335_CreateStageTypeRender"; }
}
为了
public sealed partial class CreateSeatingTypeRender : IMigrationMetadata
private readonly ResourceManager Resources = new ResourceManager(typeof(CreateSeatingTypeRender));
string IMigrationMetadata.Id
{
get { return "201411190809335_CreateSeatingTypeRender"; }
}
最后,我已经进入数据库并重命名与旧迁移名称对应的记录,并将它们更改为反映新迁移名称的内容。否则,我认为EF/Visual Studio会认为有新的迁移,而实际上没有。
我认为我已经考虑到了所有要点,请让我知道您认为是否有遗漏或者出于某种原因这不是一个好主意。