我刚刚从V6.0.2更新了 EntityFramework
到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身份的架构一致性检查 .
我为什么要那样做?而且“多久”?
此外,自更新之前和之后,我没有更改模型中的任何内容 .
2 回答
我相信这是您升级数据库时的一次性事件 .
您可以在.NET Web Development and Tools Blog阅读更多内容 . 另请参阅该博客文章中链接的Updating ASP.NET applications from ASP.NET Identity 1.0 to 2.0.0-alpha1 .
Bool param throwIfV1Schema抛出异常,即asp.net Identity模型已更改(更新到新版本2) .
更改IdentityDbContext构造函数以进行一次迁移: