asp.net - 将ASP.NET Identity升级到2.0后出现异常

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

我的项目:VS2013, Entity Framework ,Web表单,数据库优先,身份

我今天(2014-4-15)更新了我项目的所有NuGet软件包。其中,身份已升级到2.0.0.0。

我以为一切都很好,但是不幸的是,当我运行该应用程序时,以下语句给出了一个异常(exception)。

namespace xxx.Models
{
    // You can add User data for the user by adding more properties to your User class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
    public class ApplicationUser : IdentityUser
    {
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("MyConnection") 
        {
        }
    }
...
}

异常信息如下。它要求我执行代码优先迁移。但是我的项目是Database First Webforms项目。我怎么解决这个问题?谢谢!

Microsoft.AspNet.Identity.EntityFramework.dll中发生类型为'System.InvalidOperationException'的异常,但未在用户代码中处理

附加信息:自创建数据库以来,支持“ApplicationDbContext”上下文的模型已更改。
这可能是由于ASP.NET Identity Framework使用的模型已更改或您的应用程序中使用的模型已更改而发生的。
要解决此问题,您需要更新数据库。考虑使用“代码优先迁移”来更新数据库(http://go.microsoft.com/fwlink/?LinkId=301867)。
在使用Code First Migrations更新数据库之前,请通过在应用程序中ApplicationDbContext的构造函数中设置throwIfV1Schema = false来禁用ASP.NET Identity的模式一致性检查。
public ApplicationDbContext():base(“ApplicationServices”,throwIfV1Schema:false)

最佳答案

您需要通过执行错误提示来禁用架构一致性。从版本1.0升级到2.0时,这是一回事。

public ApplicationDbContext() : base("MyConnection", throwIfV1Schema:false)

下一步-进行迁移。

在那之后一切都会正常工作,您可以删除此throwIfV1Schema:false
您也可以查看this了解更多信息

关于asp.net - 将ASP.NET Identity升级到2.0后出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079583/

相关文章:

c# - 数据库首次迁移 EF Core

asp.net-core - 将帐户注册限制为仅具有 asp.net 身份验证的 Admin 用户

c# - 身份的方案名称是什么?

c# - Asp.Net CheckBoxList ListItem CssClass 由 aspNetDisabled 覆盖

jquery - 从通用处理程序、SignalR 中的 C# 代码调用客户端方法

c# - 仅一个变量的 session 超时不同

entity-framework - Entity Framework 中的WillCascadeOnDelete如何工作?

c# - 将字符串项添加到数据列表 asp.net

asp.net-mvc - 使用 Entity Framework 和 ASP.NET MVC 更新实体的单个属性

.net - 无法从 GenericIdentity 检索角色