Skip to content

Instantly share code, notes, and snippets.

@2garryn
Created September 3, 2019 18:24
Show Gist options
  • Save 2garryn/38ece07bc7769127698f9a8c7b245f90 to your computer and use it in GitHub Desktop.
Save 2garryn/38ece07bc7769127698f9a8c7b245f90 to your computer and use it in GitHub Desktop.
public class AccountsContext: DbContext, DataModel.IUserStore
{
public DbSet<UserSchema> AccountEntities { set; get; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserSchema>().ToTable("users");
modelBuilder.Entity<UserSchema>().HasKey(a => a.Id);
modelBuilder.Entity<UserSchema>().HasAlternateKey(a => a.Email).HasName("AlternateKey_Email");
modelBuilder.Entity<CompanySchema>().ToTable("companies");
modelBuilder.Entity<CompanySchema>().HasKey(a => a.Id);
modelBuilder.Entity<RoleSchema>().ToTable("roles");
modelBuilder.Entity<RoleSchema>().HasKey(a => new { a.UserId, a.CompanyId });
modelBuilder.Entity<ApplSchema>().ToTable("appls");
modelBuilder.Entity<ApplSchema>().HasKey(a => a.Id);
modelBuilder.Entity<DeviceSchema>().ToTable("devices");
modelBuilder.Entity<DeviceSchema>().HasKey(a => a.Id);
modelBuilder.Entity<RoleSchema>()
.HasKey(r => new { r.UserId, r.CompanyId });
modelBuilder.Entity<RoleSchema>()
.HasOne(r => r.User)
.WithMany(c => c.Roles)
.HasForeignKey(r => r.UserId)
.HasConstraintName("ForeignKey_Role_User");
modelBuilder.Entity<RoleSchema>()
.HasOne(bc => bc.Company)
.WithMany(c => c.Roles)
.HasForeignKey(bc => bc.CompanyId)
.HasConstraintName("ForeignKey_Role_Company");
modelBuilder.Entity<ApplSchema>()
.HasOne(a => a.Company)
.WithMany(c => c.Appls)
.HasForeignKey(a => a.CompanyId)
.HasConstraintName("ForeignKey_Appl_Company");
modelBuilder.Entity<DeviceSchema>()
.HasOne(a => a.Appl)
.WithMany(c => c.Devices)
.HasForeignKey(a => a.ApplId)
.HasConstraintName("ForeignKey_Device_Appl");
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseMySQL("server=clients.cuasozrko7lp.us-east-1.rds.amazonaws.com;database=clients;user=clients;password=Q1wed34?56");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment