public class CanDooDbContext : DbContextBase<CanDooDbContext>
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
if (modelBuilder == null)
{
throw new ArgumentNullException("modelBuilder");
} // Keep this:
modelBuilder.Entity<IdentityUser>().ToTable("AspNetUsers"); // Change TUser to CanDoo.Admin.Models.User everywhere else -
// IdentityUser and CanDoo.Admin.Models.User essentially 'share' the AspNetUsers Table in the database:
EntityTypeConfiguration<CanDoo.Admin.Models.User> table =
modelBuilder.Entity<CanDoo.Admin.Models.User>().ToTable("AspNetUsers"); table.Property((CanDoo.Admin.Models.User u) => u.UserName).IsRequired(); // EF won't let us swap out IdentityUserRole for CanDoo.Admin.Models.UserRole here:
modelBuilder.Entity<CanDoo.Admin.Models.User>().HasMany<IdentityUserRole>((CanDoo.Admin.Models.User u) => u.Roles);
modelBuilder.Entity<IdentityUserRole>().HasKey((IdentityUserRole r) =>
new { UserId = r.UserId, RoleId = r.RoleId }).ToTable("AspNetUserRoles"); // Leave this alone:
EntityTypeConfiguration<IdentityUserLogin> entityTypeConfiguration =
modelBuilder.Entity<IdentityUserLogin>().HasKey((IdentityUserLogin l) =>
new
{
UserId = l.UserId,
LoginProvider = l.LoginProvider,
ProviderKey
= l.ProviderKey
}).ToTable("AspNetUserLogins"); //entityTypeConfiguration.HasRequired<IdentityUser>((IdentityUserLogin u) => u.User); EntityTypeConfiguration<IdentityUserClaim> table1 =
modelBuilder.Entity<IdentityUserClaim>().ToTable("AspNetUserClaims"); //table1.HasRequired<IdentityUser>((IdentityUserClaim u) => u.User); // Add this, so that IdentityRole can share a table with CanDoo.Admin.Models.Role:
modelBuilder.Entity<IdentityRole>().ToTable("AspNetRoles"); // Change these from IdentityRole to CanDoo.Admin.Models.Role:
//EntityTypeConfiguration<CanDoo.Admin.Models.Role> entityTypeConfiguration1 =
// modelBuilder.Entity<CanDoo.Admin.Models.Role>().ToTable("AspNetRoles"); //entityTypeConfiguration1.Property((CanDoo.Admin.Models.Role r) => r.Name).IsRequired(); modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId }); //base.OnModelCreating(modelBuilder);
}
}
04-17 18:03