使用dotnet ef数据库更新更新表不会创建表

时间:2019-11-05 16:50:07

标签: asp.net entity-framework .net-core npgsql

我一直在遵循一个教程来创建数据库,方法是拥有一个上下文类,并运行以下命令:

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

这最初确实对我有用,并且创建了预期的数据库。从那时起,我删除了迁移文件并再次运行该过程,update命令似乎运行正常,但是当我检查数据库时,尚未创建表。

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

我认为我实际上没有进行任何更改,所以为什么update命令不能像以前那样停止工作?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  1. 从点网项目中的“迁移”文件夹中删除所有迁移。
  2. 从CLI或从任何地方创建新迁移。 (添加了dotnet-ef迁移。)
  3. 在此新迁移文件的.cs文件中,注释现有表的所有CREATE TABLES命令,即migration.Create ... this(这些将在迁移文件的Up方法中)
  4. 仅保留CREATE命令用于仅所需的表。
  5. 应用更新。(dotnet-ef数据库更新) 会像魅力一样工作。