using System; using System.Security.AccessControl; using Microsoft.EntityFrameworkCore; using Sledgemapper.Api.Models; using System.Reflection; namespace Sledgemapper.Api.Data { public static class DbInitializer { public static void Initialize(MyDbContext context) { context.Database.EnsureCreated(); } } public class MyDbContext : DbContext { public DbSet MapLogs { get; set; } public DbSet Sessions { get; set; } public DbSet UserConnections { get; set; } public DbSet SessionUsers { get; set; } public MyDbContext(DbContextOptions options) : base(options) { } // protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) // { // // optionsBuilder. // // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName); // // optionsBuilder.UseSqlite("Filename=SledgemapperDatabase.db", options => // // { // // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName); // // }); // optionsBuilder.UseSqlite("Filename=MyDatabase.db").UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); // base.OnConfiguring(optionsBuilder); // } protected override void OnModelCreating(ModelBuilder modelBuilder) { // Map table names modelBuilder.Entity().ToTable("MapLog", "dbo"); modelBuilder.Entity(entity => { entity.HasKey(e => e.MapLogId); }); modelBuilder.Entity().ToTable("Session", "dbo"); modelBuilder.Entity(entity => { entity.HasKey(e => e.SessionId); entity.HasIndex(e => e.SessionName).IsUnique(); }); modelBuilder.Entity().ToTable("UserConnection", "dbo"); modelBuilder.Entity(entity => { entity.HasKey(e => e.UserConnectionId); }); modelBuilder.Entity().ToTable("SessionUser", "dbo"); modelBuilder.Entity(entity => { entity.HasKey(e => e.SessionUserId); }); base.OnModelCreating(modelBuilder); } } }