我的项目:VS2013,实体框架,Web表单,数据库优先,身份
我今天更新了我项目的所有NuGet包(2014-4-15).其中,Identity升级到2.0.0.0.
我认为事情进展顺利,但不幸的是,当我运行应用程序时,以下语句给出了异常.
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")
{
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
例外信息如下.它要求我做Code First Migration.但我的项目是Database First webforms项目.我怎么解决这个问题?谢谢!
Microsoft.AspNet.Identity.EntityFramework.dll中出现"System.InvalidOperationException"类型的异常,但未在用户代码中处理
附加信息:自创建数据库以来,支持'ApplicationDbContext'上下文的模型已更改.这可能是因为ASP.NET Identity Framework使用的模型已更改或应用程序中使用的模型已更改.要解决此问题,您需要更新数据库.请考虑使用"代码优先迁移"来更新数据库(http://go.microsoft.com/fwlink/?LinkId=301867).
在使用"代码优先迁移"更新数据库之前,请通过在应用程序的ApplicationDbContext的构造函数中设置throwIfV1Schema = false来禁用ASP.NET身份的架构一致性检查.public ApplicationDbContext():base("ApplicationServices",throwIfV1Schema:false)
asp.net entity-framework asp.net-identity asp.net-identity-2
这是MVC 5/EF6.所以我有以下课程:
public class User : IdentityUser
{
public User()
{
Levels = new List<Level>();
}
[Required, MaxLength(200)]
public string FirstName { get; set; }
[Required, MaxLength(200)]
public string LastName { get; set; }
public virtual ICollection<Level> Levels { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和
public class Level
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
除了常规的MVC5成员资格表之外,它还创建了2个:Levels和UserLevels(使用User_Id和Level_Id列).Levelstable有一个静态数据(即1 - …