EF Code First: 在使用Code First迁移更新数据库之前,

9

我刚将EntityFramework从V6.0.2更新到了V6.1,并且也更新了最新的ASP.NET Identity。然后我尝试创建一个迁移文件来限制用户名的长度,这在今天发布的新版本的ASP.NET Identity Framework中是可能的。

我得到了以下错误信息:

与“ApplicationDbContext”上下文的模型后备存储已自数据库创建以来发生了更改。这可能是因为使用了ASP.NET Identity Framework的模型发生了更改,或者应用程序中使用的模型发生了更改。要解决此问题,您需要更新您的数据库。请考虑使用Code First Migrations更新数据库(http://go.microsoft.com/fwlink/?LinkId=301867)。在使用Code First Migrations更新数据库之前,请通过在应用程序中的ApplicationDbContext构造函数中设置throwIfV1Schema = false来禁用ASP.NET Identity的模式一致性检查。 public ApplicationDbContext() : base("ApplicationServices", throwIfV1Schema: false)

我特别关注这一行:

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

为什么要这样做?以及需要禁用多久?

另外,更新前后我没有更改模型。

2个回答

17

布尔参数throwIfV1Schema会抛出异常,提示asp.net身份验证模型已更改(更新为新版本2)。

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

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

9

我已经禁用了模式一致性并进行了迁移。然后我又重新启用了它。目前看起来它是有效的。 - Michael Fürstenberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接