60 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using MareSynchronosShared.Models;
 | |
| using Microsoft.EntityFrameworkCore;
 | |
| 
 | |
| namespace MareSynchronosShared.Data;
 | |
| 
 | |
| public class MareDbContext : DbContext
 | |
| {
 | |
| #if DEBUG
 | |
|     public MareDbContext() { }
 | |
| 
 | |
|     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
 | |
|     {
 | |
|         if (optionsBuilder.IsConfigured)
 | |
|         {
 | |
|             base.OnConfiguring(optionsBuilder);
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=mare;Username=postgres", builder =>
 | |
|         {
 | |
|             builder.MigrationsHistoryTable("_efmigrationshistory", "public");
 | |
|             builder.MigrationsAssembly("MareSynchronosShared");
 | |
|         }).UseSnakeCaseNamingConvention();
 | |
|         optionsBuilder.EnableThreadSafetyChecks(false);
 | |
| 
 | |
|         base.OnConfiguring(optionsBuilder);
 | |
|     }
 | |
| #endif
 | |
| 
 | |
|     public MareDbContext(DbContextOptions<MareDbContext> options) : base(options)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     public DbSet<User> Users { get; set; }
 | |
|     public DbSet<FileCache> Files { get; set; }
 | |
|     public DbSet<ClientPair> ClientPairs { get; set; }
 | |
|     public DbSet<ForbiddenUploadEntry> ForbiddenUploadEntries { get; set; }
 | |
|     public DbSet<Banned> BannedUsers { get; set; }
 | |
|     public DbSet<Auth> Auth { get; set; }
 | |
|     public DbSet<LodeStoneAuth> LodeStoneAuth { get; set; }
 | |
|     public DbSet<BannedRegistrations> BannedRegistrations { get; set; }
 | |
| 
 | |
| 
 | |
|     protected override void OnModelCreating(ModelBuilder modelBuilder)
 | |
|     {
 | |
|         modelBuilder.Entity<Auth>().ToTable("auth");
 | |
|         modelBuilder.Entity<User>().ToTable("users");
 | |
|         //modelBuilder.Entity<User>().HasIndex(c => c.CharacterIdentification);
 | |
|         modelBuilder.Entity<FileCache>().ToTable("file_caches");
 | |
|         modelBuilder.Entity<FileCache>().HasIndex(c => c.UploaderUID);
 | |
|         modelBuilder.Entity<ClientPair>().ToTable("client_pairs");
 | |
|         modelBuilder.Entity<ClientPair>().HasKey(u => new { u.UserUID, u.OtherUserUID });
 | |
|         modelBuilder.Entity<ClientPair>().HasIndex(c => c.UserUID);
 | |
|         modelBuilder.Entity<ClientPair>().HasIndex(c => c.OtherUserUID);
 | |
|         modelBuilder.Entity<ForbiddenUploadEntry>().ToTable("forbidden_upload_entries");
 | |
|         modelBuilder.Entity<Banned>().ToTable("banned_users");
 | |
|         modelBuilder.Entity<LodeStoneAuth>().ToTable("lodestone_auth");
 | |
|         modelBuilder.Entity<BannedRegistrations>().ToTable("banned_registrations");
 | |
|     }
 | |
| } | 
