首页 文章

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

提问于
浏览
9

我刚刚从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 回答

  • 16

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

    您可以在.NET Web Development and Tools Blog阅读更多内容 . 另请参阅该博客文章中链接的Updating ASP.NET applications from ASP.NET Identity 1.0 to 2.0.0-alpha1 .

  • 9

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

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

    public YourDbContext() : base("YourConnectionString", throwIfV1Schema:false){}
    

相关问题