型号兼容性错误

时间:2014-04-29 12:41:06

标签: asp.net-mvc entity-framework asp.net-identity-2

设置

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

问题:

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

我现在收到以下错误:

无法检查模型兼容性,因为数据库不包含模型元数据。只能检查使用“代码优先”或“代码优先迁移”创建的数据库的模型兼容性。

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

但是,我无法弄清楚如何为Identity元数据实现相同的目标。

问题:

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

2 个答案:

答案 0 :(得分:0)

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

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<TsContext>()); 

答案 1 :(得分:0)

我不得不重新创建数据库并重新开始。我仍然处于黑暗中,我不知道Neel的答案是否适合生产数据库。现在,我没有时间正确研究AspNet.Identity来找到问题的解决方案。遗憾。

治愈前的预防:

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

因此,故事的寓意是:

道德:

永远不要删除__MigrationHistory表。在做任何非常愚蠢,无耻,无车和彻头彻尾的愚蠢之前,先了解一点。