2016-12-12 1 views
0

Tabelle Benutzerhinzufügen zusätzliche Eigenschaften IdentityUser ASP.NET MVC 5

[Table("Users")] 
    public class User : IdentityUser 
    { 
     public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> manager) 
     { 
      // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
      var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
      // Add custom user claims here 
      return userIdentity; 
     } 

     [Required] 
     [Display(Name = "Name")] 
     public string Name { get; set; } 
     [Required] 
     [Display(Name = "Gender")] 
     public string Gender { get; set; } 

     [Required] 
     [Display(Name = "Date of birth")] 
     public string DateOfBirth { get; set; } 
    } 

mycontext Klasse

public class myContext : IdentityDbContext<User> 
    { 
     public myContext() : base("DefaultConnection") 
     { 
     } 
     public static myContext Create() 
     { 
      return new myContext(); 
     } 
     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      base.OnModelCreating(modelBuilder); 
      modelBuilder.Entity<IdentityUser>().ToTable("Users", "dbo"); 
      modelBuilder.Entity<IdentityRole>().ToTable("Roles", "dbo"); 
      modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles", "dbo"); 
      modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims", "dbo"); 
      modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins", "dbo"); 
     } 

    } 

Diese beiden Tabellen schafft

  1. AspNetUsers - mit additiona Felder
  2. Benutzer - mit Standardfeldern

Beachten Sie, was ich hier vermisse. Wie kann ich die zusätzlichen Felder auch in Users Tabelle

Antwort

1

Sie müssen die Linie in OnModelCreating in myContext ändern:

modelBuilder.Entity<IdentityUser>().ToTable("Users", "dbo"); 

zu:

modelBuilder.Entity<User>().ToTable("Users", "dbo"); 

jetzt Richtig, es ist die Schaffung von zwei Tabellen weil Sie den Typ IdentityUser definiert haben, der verwendet werden soll, um die Tabelle mit dem Namen Users zu erstellen, und eine Standardtabelle wird gegen den Typ IdentityUser erstellt.

+0

Danke, dass du meinen Tag gerettet hast! – HaBo

+0

Danke mann !!!!!!! –