通过添加额外的模型扩展AspNetUsers - 首先是代码

时间:2015-04-05 16:15:15

标签: asp.net asp.net-mvc entity-framework entity-framework-6

我想更新AspNetUsers表并添加自定义属性。 我创建了一个名为UserModel的新类。

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时,使用方法up创建一个类,down为空。为什么不生成这个类的信息?

编辑:我正在使用asp.net mvc互联网应用程序,我想要做的是将这些列添加到自动生成的AspNetUsers表中。

3 个答案:

答案 0 :(得分:1)

如果您使用Asp.net Identity,那么您应该在ApplicationUser类或类似的类中添加新属性,这些属性继承自IdentityUser。

答案 1 :(得分:0)

您的代码中缺少很少的项目:

  • 您需要继承DBContext,将其添加到您的UserModel课程所在的代码中:

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

  • 您需要为新的上下文enable-migrations

    运行UserModelContext命令
    • 运行命令后,您将收到错误
  

EntityType'UserModel'没有定义键。定义此EntityType的密钥。

因此您需要重新设计表格并添加密钥。

  • 您需要引用外键来引用User表

答案 2 :(得分: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; }
}