2015-04-05 31 views
0

我想更新AspNetUsers表並添加自定義屬性。 我做了一個名爲UserModel的新類。擴展AspNetUsers通過添加一個額外的模型 - 代碼第一

namespace theNotes.Models 
{ 
public class UserModel 
{ 
    [Required] 
    [Display(Name = "Education Level")] 
    public string Grade { get; set; } 

    public System.DateTime CreatedDate { get; set; } 
    public bool IsActive { get; set; } 
    public string IPAddress { get; set; } 

    public Nullable<int> TotalFilesDownloaded { get; set; } 
    public Nullable<int> FilesDownloadedToday { get; set; } 
    public Nullable<decimal> Money { get; set; } 
} 
} 

當我運行在PM命令Add-Migration UserInfo類與方法updown做是空的。爲什麼不生成這個類的信息?

編輯:我正在使用asp.net mvc互聯網應用程序,我想要做的是將這些列添加到自動生成的AspNetUsers表。

+0

你引用添加到您的DbContext? – 2015-04-05 16:40:55

+0

我在哪裏添加它? – User456789 2015-04-05 16:57:38

+0

你在哪裏添加了這個課程?在'Model'文件夾中? 如果是這樣,你可以發佈你的班級的完整代碼嗎? – 2015-04-05 17:05:45

回答

1

如果您使用的是Asp.net Identity,那麼您應該在類ApplicationUser或從IdentityUser繼承的類似的類中添加新的屬性。

+0

您始終可以創建一個單獨的模型並與'ApplicationUser'模型建立關係。添加屬性不是唯一的選擇。 – 2015-04-05 20:46:09

+0

你是對的,但是「開箱即用」類的延伸似乎是最快和最簡單的解決方案。 – 2015-04-05 22:34:38

+0

我同意這一點。除了它是不可擴展的。 – 2015-04-05 22:37:44

0

幾個項目都缺少代碼:

  • 您需要繼承來回DBContext添加到您的代碼在您UserModel類:

    public class UserModelContext : DbContext { public DbSet<UserModel> UserModels{ get; set; } }

  • 您需要運行enable-migrations命令爲新的上下文UserModelContext

    • 一旦運行了命令,你會得到錯誤

的EntityType '的usermodel' 沒有定義鍵。定義此EntityType的關鍵字。

因此您需要重新設計您的表並添加一個鍵。

  • 你需要引用的外鍵用戶參考表
0

您需要定義您的UserModel類是這樣的:

[Table("AspNetUsers")] 
public class UserModel : IdentityUser 
{ 
    [Required] 
    [Display(Name = "Education Level")] 
    public string Grade { get; set; } 

    public System.DateTime CreatedDate { get; set; } 
    public bool IsActive { get; set; } 
    public string IPAddress { get; set; } 

    public Nullable<int> TotalFilesDownloaded { get; set; } 
    public Nullable<int> FilesDownloadedToday { get; set; } 
    public Nullable<decimal> Money { get; set; } 
} 
相關問題