我正在開發使用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包含在遷移類文件中。 –