EF Code Frirst:在使用Code First Migrations更新数据库之前,

Yus*_*tme 9 entity-framework asp.net-identity

我刚从EntityFrameworkV6.0.2 更新到V6.1,也到最新版本ASP.NET Identity.之后我尝试创建一个迁移文件,用于限制用户名的长度,现在可以使用ASP.NET Identity Framework今天发布的新版本.

这是我收到的错误消息:

自创建数据库以来,支持'ApplicationDbContext'上下文的模型已更改.这可能是因为ASP.NET Identity Framework使用的模型已更改或应用程序中使用的模型已更改.要解决此问题,您需要更新数据库.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=301867).在使用"代码优先迁移"更新数据库之前,请通过在应用程序的ApplicationDbContext的构造函数中设置throwIfV1Schema = false来禁用ASP.NET身份的架构一致性检查. public ApplicationDbContext() : base("ApplicationServices", throwIfV1Schema:false)

我对这一行特别感兴趣:

在使用"代码优先迁移"更新数据库之前,请通过在应用程序的ApplicationDbContext的构造函数中设置throwIfV1Schema = false来禁用ASP.NET身份的架构一致性检查.

我为什么要那样做?而且"多久"?

此外,自更新之前和之后,我没有更改模型中的任何内容.

Arv*_*vis 16

Bool param throwIfV1Schema抛出异常,即asp.net Identity模型已更改(更新到新版本2).

更改IdentityDbContext构造函数以进行一次迁移:

public YourDbContext() : base("YourConnectionString", throwIfV1Schema:false){}
Run Code Online (Sandbox Code Playgroud)


Mic*_*erg 9

我相信这是您升级数据库时的一次性事件.

您可以在.NET Web开发和工具博客中阅读更多内容.另请参阅从该博客文章链接从ASP.NET Identity 1.0更新到2.0.0-alpha1的ASP.NET应用程序.