EF代码优先项目在更改数据库连接后不会创建AspNetUsers,AspNetRoles等表

时间:2017-06-01 04:00:27

标签: asp.net asp.net-mvc entity-framework ef-code-first

我在实验室环境中使用SQL Express数据库完成了EF Code First Project。

项目完成后,我更改了数据库连接字符串以连接到新的生产SQL Express数据库。

现在,我已经自动生成了Model表,但AspNetUsers,AspNetRoles,AspNetUserRoles等不会自动生成。我是一名新学员,我需要你的帮助才能知道如何将表格放回数据库中。

如果我从软件包管理器控制台执行update-database,我会得到:

Error Number:4902,State:1,Class:16
Cannot find the object "dbo.AspNetUsers" because it does not exist or you do not have permissions.

如果你能向我解释迁移对于身份表的作用是什么?

3 个答案:

答案 0 :(得分:2)

1)备份我的所有作品

2)删除了迁移文件夹

3)使用SQL Management Studio,从生产服务器删除数据库

4)从软件包管理器控制台

Enable-Migrations -Force
Add-Migration init
Update-Database

你知道吗,现在所有的表都回到了生产数据库:-) 感谢Lin来自 How to re-create database for Entity Framework?

希望这个问题/答案可以帮助像我这样的其他人

答案 1 :(得分:0)

进行备份。 删除迁移文件夹。 删除数据库。 打开软件包管理器控制台>输入 Add-Migration“ initail迁移”>命中输入>输入update-Database 那你就好了

答案 2 :(得分:0)

您不能删除数据库,而只能删除以下表:

__MigrationHistory, AspNetRoles, AspNetUserClaims, AspNetUserLogins, AspNetUserRoles

然后从您的PM控制台中删除Migration文件夹并最终删除:

Enable-Migrations -Force
Add-Migration InitialCreate
Update-Database