【问题标题】:EF Code Frirst: Before you update your database using Code First Migrations,EF Code First:在使用 Code First 迁移更新数据库之前,
【发布时间】:2014-03-20 23:30:29
【问题描述】:

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

这是我收到的错误消息:

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

我对这行特别感兴趣:

在使用 Code First 迁移更新数据库之前,请 通过设置禁用 ASP.NET Identity 的架构一致性检查 throwIfV1Schema = false 在您的构造函数中 ApplicationDbContext 在您的应用程序中。

我为什么要这样做?持续多长时间?

另外,在更新前后,我没有更改模型中的任何内容。

【问题讨论】:

    标签: entity-framework asp.net-identity


    【解决方案1】:

    Bool 参数 throwIfV1Schema 引发 asp.net 身份模型已更改(更新到新版本 2)的异常。

    为一次性迁移更改您的 IdentityDbContext 构造函数:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我确实禁用了架构一致性并进行了迁移。然后我又把它打开了。到目前为止,它似乎有效。
      猜你喜欢
      • 2014-10-08
      • 2020-12-03
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多