导航

12-002 Identity 之 六个对象六张表

Posted on 2015-04-23 21:17  DotNet1010  阅读(211)  评论(0)    收藏  举报

--

  public class IdentityUser : IdentityUser<string>{}
  public class IdentityUserClaim : IdentityUserClaim<string> { }
  public class IdentityRole : IdentityRole<string>{}
  public class IdentityRoleClaim : IdentityRoleClaim<string> { }
  public class IdentityUserRole : IdentityUserRole<string> { }
  public class IdentityUserLogin : IdentityUserLogin<string> { }

 

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<TUser>(b =>
                {
                    b.Key(u => u.Id);  b.ForRelational().Table("AspNetUsers");
                    b.Property(u => u.ConcurrencyStamp).ConcurrencyToken();
                });

            builder.Entity<TRole>(b =>
                {
                    b.Key(r => r.Id);  b.ForRelational().Table("AspNetRoles");
                    b.Property(r => r.ConcurrencyStamp).ConcurrencyToken();
                });

            builder.Entity<IdentityUserClaim<TKey>>(b =>
                {
                    b.Key(uc => uc.Id);
                    b.HasOne<TUser>().WithMany().ForeignKey(uc => uc.UserId);
                    b.ForRelational().Table("AspNetUserClaims");
                });

            builder.Entity<IdentityRoleClaim<TKey>>(b =>
                {
                    b.Key(rc => rc.Id);
                    b.HasOne<TRole>().WithMany().ForeignKey(rc => rc.RoleId);
                    b.ForRelational().Table("AspNetRoleClaims");
                });

            builder.Entity<IdentityUserRole<TKey>>(b =>
                {
                    b.Key(r => new { r.UserId, r.RoleId });
                    b.ForRelational().Table("AspNetUserRoles");
                });
        

            builder.Entity<IdentityUserLogin<TKey>>(b =>
                {
                    b.Key(l => new { l.LoginProvider, l.ProviderKey });
                    b.HasOne<TUser>().WithMany().ForeignKey(uc => uc.UserId);
                    b.ForRelational().Table("AspNetUserLogins");
                });
        }