Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行更新数据库之前先删除代码迁移_C#_Asp.net Mvc_Entity Framework_Entity Framework Migrations - Fatal编程技术网

C# 在运行更新数据库之前先删除代码迁移

C# 在运行更新数据库之前先删除代码迁移,c#,asp.net-mvc,entity-framework,entity-framework-migrations,C#,Asp.net Mvc,Entity Framework,Entity Framework Migrations,这个看似简单却令人沮丧的问题在谷歌上很难找到答案。我有一个ASP.NETMVC项目,我正在使用实体框架和代码优先的方法。我本来想添加另一个迁移,但当我运行addmigrationmigrationname命令时,我拼错了MigrationName 我还没有运行更新数据库。重命名自动创建的迁移类名就足够了吗?或者我必须先删除迁移并添加一个具有正确名称的新迁移吗?如果是,我该怎么做?只需删除自动创建的迁移类,或者还有更多吗?虽然您可以重命名它们,但我认为您可能会遇到一些与创建的*.resx文件有关的

这个看似简单却令人沮丧的问题在谷歌上很难找到答案。我有一个ASP.NETMVC项目,我正在使用实体框架和代码优先的方法。我本来想添加另一个迁移,但当我运行
addmigrationmigrationname
命令时,我拼错了
MigrationName


我还没有运行
更新数据库
。重命名自动创建的迁移类名就足够了吗?或者我必须先删除迁移并添加一个具有正确名称的新迁移吗?如果是,我该怎么做?只需删除自动创建的迁移类,或者还有更多吗?

虽然您可以重命名它们,但我认为您可能会遇到一些与创建的
*.resx
文件有关的问题,因为它包含一个压缩的EDMX文件以及一些命名内容。最简单的方法是删除根迁移类(这也将删除
migration.Designer.cs
migration.resx
文件)并重新创建它

如果您已经运行了
更新数据库
命令,您仍然可以通过回滚以下命令来实现:

Update-Database -TargetMigration NameOfPreviousMigration

(如果回滚会破坏数据,您可能需要添加
-Force

只需删除类并重新创建,不需要任何更激动人心的内容。您可能可以重命名它,但是养成自动生成这些内容的习惯是很好的。非常感谢@DavidG!将此作为答案发布,以便我可以将其标记为已接受。@DavidG不仅仅是删除该类不会导致在另一次尝试的迁移中拾取更改吗?迁移的更改已经是快照的一部分了吗?或者,这是否会根据您使用的EF版本而改变?如果您尚未运行更新数据库,则除了解决方案中的新类文件外,没有任何更改。只需删除它,然后再次运行“添加迁移”。@Kritner这就是重点。删除它并添加另一个具有正确名称的迁移name@taha不知道你为什么认为这是个好主意——这会打破这个答案