我正在开发使用Visual Studio 2013的ASP.NET MVC项目。我正在使用实体框架代码优先方法与数据库进行交互。但是由于ASP.NET中的内置身份系统,我在迁移数据时遇到了问题。在我接触身份系统之前,一切都很好。无法迁移实体框架中的AspNetUser实体.NET代码优先方法
这些是我所做的步骤。
我使用内置身份系统从UI注册了一个帐户。所以AspNetUsers表是在数据库中创建的。
我为我的代码创建了AspNetUser类,因为我需要使用它。
然后我运行迁移和更新数据库命令。它会抛出错误。
这是我AspNetUser类
public class AspNetUser
{
[Required]
public String Id { get; set; }
[Required]
public String UserName { get; set; }
public String PasswordHash { get; set; }
public String SecurityStamp { get; set; }
[Required]
public String Discriminator { get; set; }
}
这是我的数据库上下文类
public class AyarDbContext : DbContext
{
public AyarDbContext()
: base("DefaultConnection")
{
}
public DbSet<Category> Categories { get; set; }
public DbSet<Region> Regions { get; set; }
public DbSet<Area> Areas { get; set; }
public DbSet<Item> Items { get; set; }
public DbSet<ItemContactInfo> ItemContacts { get; set; }
public DbSet<Gallery> Galleries { get; set; }
public DbSet<Mail> Mails { get; set; }
public DbSet<AspNetUser> AspNetUsers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
这是我的错误。
数据库中已经有一个名为'AspNetUsers'的对象。
如何迁移AspNetUser类?我使用用户界面注册,因为我自动创建其他表需要身份系统。我如何迁移该类,并使用已存在于数据库中的AspNetUsers表进行映射。
也许,我可以在代码中访问用户。如果我不得不在未来再次更新我的模型会怎么样?那个错误会再次出现在我身上。 –
是的,您可以使用上面显示的代码或用户管理器访问用户表。取决于你想要做什么。如果你只是想添加其他属性继承和添加属性。如果您想重做密码散列或内部结构是一项重大努力(IMO) –
否我不能在这种情况下使用迁移添加新实体,因为AspNetUser包含在迁移类文件中。 –