如何为身份添加缺失的迁移? (无效的对象名称 'dbo.AspNetRoles')

How to add missing migrations for Identity? (Invalid object name 'dbo.AspNetRoles')

我创建了一个 asp.net 应用程序,它在我的开发机器上创建了这些内置表,这是使用 asp.net mvc 中的身份部分所必需的。

但是,在初始创建之后,我不得不创建一个 SwitchToIdentityDbContext 迁移,它具有创建这些表的所有逻辑。但在我当时的应用程序中,这些表确实已经存在,所以我删除了那个逻辑。之后(我认为)当我尝试将我的应用程序部署到没有这些表的新数据源时,它导致缺少标识表。

有没有办法生成丢失的迁移以获得此 运行?

到目前为止,我的配置中有这个:

AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;

即使我删除那个迁移并添加一个新迁移,它还是空的。

如果您不关心驻留在数据库中的数据,更正架构的一种选择是删除 Visual Studio 中的所有 .cs 迁移和 [=11] 中的所有记录=] table 在你的数据库中。之后你可以尝试在 Visual Studio 中创建一个全新的迁移来修复数据库。

但是,如果这不起作用,您可以清除 Visual Studio 中的所有迁移并完全删除数据库。那么运行

add-migration CreateMyDb,然后update-database

你应该可以开始了。

如果您 关心您的数据,您可以随时将数据库 table 的内容导出到 Server Management Studio 中的 .csv 文件(如果你使用它)在销毁迁移之前。