使用 dotnet ef database update 更新表不会创建表

Updating tables with dotnet ef database update doesn't create tables

我一直在按照教程通过上下文 class 和 运行 执行以下命令来创建数据库:

dotnet ef 迁移添加 InitialMigration dotnet ef 数据库更新

这最初对我有用,并且创建了预期的数据库。从那以后我又删除了迁移文件和运行进程,更新命令似乎运行没问题,但是当我检查数据库时,表还没有创建。

如果我查看迁移文件,我会发现它看起来不错,并且似乎包含正确的代码来创建我想要的表。

我认为我实际上并没有改变任何东西,那么为什么更新命令像以前那样停止工作了?

删除您的迁移文件并没有删除您的数据库 因此您的数据库必须仍然存在,但是,如果您创建一个具有相同名称的新迁移并更新您的数据库,这不会影响您的数据库,因为迁移已应用于您的数据库 尝试从 SQL 资源管理器中手动删除您的数据库,然后尝试更新数据库

  1. 从 dot net 项目的迁移文件夹中删除所有迁移。
  2. 从 CLI 或您正在创建的任何地方创建新的迁移。 (dotnet-ef 迁移添加..)
  3. 在这个新迁移文件的 .cs 文件中,注释现有表的所有 CREATE TABLES 命令,即 migration.Create...这个(这些将在迁移文件的 Up 方法中)
  4. 只为需要的表保留 CREATE 命令。
  5. 应用更新。(dotnet-ef 数据库更新) 会很有魅力。