Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using [redacted];
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Logging;
- namespace [redacted]
- {
- public class MainContext : DbContext
- {
- public static readonly ILoggerFactory MyLoggerFactory
- = LoggerFactory.Create(builder => builder.AddConsole());
- public static readonly ILoggerFactory EverythingLoggerFactory
- = LoggerFactory.Create(builder =>
- builder.AddConsole()
- .AddFilter(level => level == LogLevel.Information)
- .AddFilter(category => true));
- public DbSet<User> Users { get; set; }
- public DbSet<Session> Sessions { get; set; }
- public DbSet<MatchInfo> Matches { get; set; }
- public DbSet<Player> Players { get; set; }
- public DbSet<Card> Cards { get; set; }
- public DbSet<HandCard> HandCards { get; set; }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- optionsBuilder.UseLoggerFactory(EverythingLoggerFactory);
- optionsBuilder.EnableSensitiveDataLogging(true);
- const string constr = [redacted]
- optionsBuilder.UseOracle(constr, builder => builder.UseOracleSQLCompatibility("11"));
- }
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- Setup_Users(modelBuilder);
- Setup_Sessions(modelBuilder);
- Setup_MatchInfo(modelBuilder);
- Setup_Players(modelBuilder);
- Setup_Cards(modelBuilder);
- Setup_HandCards(modelBuilder);
- }
- // --- snip ---
- private void Setup_MatchInfo(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity<MatchInfo>().ToTable("EC_MATCHINFO");
- modelBuilder.Entity<MatchInfo>()
- .HasOne(o => o.StarterUser)
- .WithOne()
- .HasForeignKey<MatchInfo>("STARTER_USERID");
- modelBuilder.Entity<MatchInfo>()
- .HasOne<User>(o => o.CurrentTurnUser)
- .WithOne()
- .HasForeignKey<MatchInfo>("CURRENT_TURN_USERID");
- modelBuilder.Entity<MatchInfo>()
- .HasOne<User>(o => o.WinnerUser)
- .WithOne()
- .HasForeignKey<MatchInfo>("WINNER_USERID");
- modelBuilder.Entity<MatchInfo>()
- .HasMany(o => o.Players)
- .WithOne(o => o.Match)
- .HasForeignKey("MATCHID");
- modelBuilder.Entity<MatchInfo>(o =>
- {
- //o.HasMany<Player>(e => e.Players);
- o.Property(e => e.MatchId).HasColumnName("MATCHID");
- //o.Property(e => e.StarterUser).HasColumnName("STARTER_USERID");
- o.Property(e => e.IsAlive).HasColumnName("ISALIVE");
- //o.Property(e => e.CurrentTurnUser).HasColumnName("CURRENT_TURN_USERID");
- //o.Property(e => e.WinnerUser).HasColumnName("WINNER_USERID");
- o.Property(e => e.WinnerPoints).HasColumnName("WINNER_POINTS");
- o.Property(e => e.CurrentTurnNum).HasColumnName("CURRENT_TURN_NUM");
- o.Property(e => e.RefToken).HasColumnName("REFTOKEN");
- });
- }
- private void Setup_Players(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity<Player>().ToTable("EC_PLAYERS");
- modelBuilder.Entity<Player>()
- .HasOne<User>(o => o.User)
- .WithOne()
- .HasForeignKey<Player>("USERID");
- modelBuilder.Entity<Player>()
- .HasOne<MatchInfo>(o => o.Match);
- modelBuilder.Entity<Player>(o =>
- {
- o.Property(e => e.PlayerId).HasColumnName("PLAYERID");
- //o.Property(e => e.User).HasColumnName("USERID");
- //o.Property(e => e.MatchId).HasColumnName("MATCHID");
- o.Property(e => e.TurnNum).HasColumnName("TURNNUM");
- o.Property(e => e.Authority).HasColumnName("AUTHORITY");
- o.Property(e => e.Money).HasColumnName("MONEY");
- o.Property(e => e.SRUID).HasColumnName("SRUID");
- });
- }
- // --- snip ---
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment