Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. public class FoodlyAuthDbContext : IdentityDbContext<User,Role,string>
  2. {
  3. public FoodlyAuthDbContext(DbContextOptions<FoodlyAuthDbContext> options) : base(options) { }
  4.  
  5.  
  6. public virtual DbSet<RefreshToken> RefreshToken { get; set; }
  7.  
  8. protected override void OnModelCreating(ModelBuilder builder)
  9. {
  10. builder.Entity((Action<EntityTypeBuilder<User>>) (b =>
  11. {
  12. b.HasKey(u => (object) u.Id);
  13. b.Property(u => u.Id).HasMaxLength(254);
  14. b.HasIndex(u => u.NormalizedUserName).HasName("UserNameIndex")
  15. .IsUnique();
  16. b.HasIndex(u => u.NormalizedEmail).HasName("EmailIndex");
  17. b.ToTable("User");
  18. b.Property(u => u.ConcurrencyStamp)
  19. .IsConcurrencyToken();
  20. b.Property(u => u.UserName).HasMaxLength(254);
  21. b.Property(u => u.NormalizedUserName).HasMaxLength(254);
  22. b.Property(u => u.Email).HasMaxLength(254);
  23. b.Property(u => u.NormalizedEmail).HasMaxLength(254);
  24. // b.HasOne((Expression<Func<User, RefreshToken>>) null)
  25. // .WithOne().HasForeignKey<RefreshToken>(rt => (object) rt.RefreshTokenId).IsRequired();
  26. b.HasMany((Expression<Func<User, IEnumerable<IdentityUserClaim<string>>>>) null).WithOne()
  27. .HasForeignKey(uc => (object) uc.UserId).IsRequired();
  28. b.HasMany((Expression<Func<User, IEnumerable<IdentityUserLogin<string>>>>) null).WithOne()
  29. .HasForeignKey(ul => (object) ul.UserId).IsRequired();
  30. b.HasMany((Expression<Func<User, IEnumerable<IdentityUserToken<string>>>>) null).WithOne()
  31. .HasForeignKey(ut => (object) ut.UserId).IsRequired();
  32. }));
  33. builder.Entity((Action<EntityTypeBuilder<IdentityUserClaim<string>>>) (b =>
  34. {
  35. b.HasKey(uc => uc.Id);
  36. b.Property(u => u.Id).HasMaxLength(254);
  37. b.ToTable("UserClaim");
  38. }));
  39. builder.Entity((Action<EntityTypeBuilder<IdentityUserLogin<string>>>) (b =>
  40. {
  41. b.HasKey(l => new
  42. {
  43. l.LoginProvider,
  44. l.ProviderKey
  45. });
  46. b.Property(x => x.LoginProvider).HasMaxLength(254);
  47. b.Property(x => x.ProviderKey).HasMaxLength(254);
  48. b.ToTable("UserLogin");
  49. }));
  50. builder.Entity((Action<EntityTypeBuilder<IdentityUserToken<string>>>) (b =>
  51. {
  52. b.HasKey(l => new
  53. {
  54. l.UserId,
  55. l.LoginProvider,
  56. l.Name
  57. });
  58. b.Property(x => x.UserId).HasMaxLength(254);
  59. b.Property(x => x.LoginProvider).HasMaxLength(254);
  60. b.Property(x => x.Name).HasMaxLength(254);
  61. b.ToTable("UserToken");
  62. }));
  63.  
  64. builder.Entity<User>(b => b.HasMany<IdentityUserRole<string>>()
  65. .WithOne().HasForeignKey(ur => (object) ur.UserId).IsRequired());
  66.  
  67. builder.Entity<Role>(b =>
  68. {
  69. b.HasKey(r => (object) r.Id);
  70. b.Property(u => u.Id).HasMaxLength(254);
  71. b.HasIndex(r => r.NormalizedName).HasName("RoleNameIndex").IsUnique();
  72. b.ToTable("Role");
  73. b.Property(r => r.ConcurrencyStamp).IsConcurrencyToken();
  74. b.Property(u => u.Name).HasMaxLength(254);
  75. b.Property(u => u.NormalizedName).HasMaxLength(254);
  76. b.HasMany<IdentityUserRole<string>>()
  77. .WithOne().HasForeignKey(ur => (object) ur.RoleId).IsRequired();
  78. b.HasMany<IdentityRoleClaim<string>>().WithOne()
  79. .HasForeignKey(rc => (object) rc.RoleId).IsRequired();
  80. });
  81. builder.Entity<IdentityRoleClaim<string>>(b =>
  82. {
  83. b.HasKey(rc => (object) rc.Id);
  84. b.Property(u => u.Id).HasMaxLength(254);
  85. b.ToTable("RoleClaim");
  86. });
  87. builder.Entity<IdentityUserRole<string>>(b =>
  88. {
  89. b.HasKey(r => new
  90. {
  91. r.UserId,
  92. r.RoleId
  93. });
  94. b.Property(x => x.RoleId).HasMaxLength(254);
  95. b.Property(x => x.UserId).HasMaxLength(254);
  96. b.ToTable("UserRole");
  97. });
  98.  
  99. builder.Entity<RefreshToken>(b =>
  100. {
  101. b.HasKey(r => (object) r.RefreshTokenId);
  102. b.Property(u => u.RefreshTokenId).HasMaxLength(254);
  103. b.Property(x => x.ClientId).HasMaxLength(254);
  104. b.Property(x => x.UserId).HasMaxLength(254);
  105. b.ToTable("RefreshToken");
  106. });
  107.  
  108. builder.Entity<User>()
  109. .HasOne(e => e.RefreshToken)
  110. .WithOne(e => e.User).IsRequired()
  111. .OnDelete(DeleteBehavior.Restrict);
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement