0

设置

我有一个使用 ASP.NET Identity 2.0 的应用程序。身份部分与应用程序所需的其余表共享一个数据库。所以在一个类库中,我有一个访问数据库以获取业务数据的dbcontext,而在另一个类库中,我有IdentityModel.cs,即ApplicationDBContext。

问题:

一切都很好,直到我陷入困境,试图弄清楚如何使用业务数据上下文进行迁移。我最终删除了 __MigrationHistory 表,因此删除了数据库中两个上下文的所有模型元数据。

我现在收到以下错误:

无法检查模型兼容性,因为数据库不包含模型元数据。只能检查使用 Code First 或 Code First 迁移创建的数据库的模型兼容性。

我删除了与业务数据相关的所有迁移,并为该项目重新启用了迁移。这具有为业务 dbcontext 重新创建模型元数据的效果。

但是,我不知道如何为身份元数据实现相同的目标。

问题:

如何在 ASP.NET Identity 2.0 的 __MigrationHistory 中重新创建模型元数据?

4

2 回答 2

0

我不得不重新创建数据库并重新开始。我仍然一无所知,以至于我不知道 Neel 的答案是否是生产数据库的正确答案。现在,我没有时间正确研究 AspNet.Identity 来找到问题的解决方案。对不起。

治疗前预防:

我所知道的是,如果我没有删除 __MigrationHistory 表,问题就不会发生所以问题是自我伤害之一,所以预防而不是治疗是最好的选择。

因此,这个故事的寓意是:

道德:

永远不要删除 __MigrationHistory 表。在做任何如此愚蠢、无能、无车和彻头彻尾的愚蠢的事情之前,了解更多关于它的信息。

于 2014-05-23T08:37:30.867 回答
0

在 Global.asax.cs 中编写以下代码,然后重试...

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<TsContext>()); 
于 2014-04-29T12:45:20.187 回答