using Microsoft.EntityFrameworkCore.Design; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using WinFormDiApp.BL.Models; namespace WinFormDiApp.DAL { public class ApplicationDbContext : DbContext { public ApplicationDbContext(DbContextOptions options) : base(options) { } public virtual DbSet Members { get; set; } public virtual DbSet AccountRecords { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity() .HasIndex(e => new { e.BetalDatum, e.Belopp, e.Konto }) .IsUnique(); } } public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory { public ApplicationDbContext CreateDbContext(string[] args) { IConfigurationRoot configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile(@Directory.GetCurrentDirectory() + "/../WinFormDi/appsettings.json") .Build(); var builder = new DbContextOptionsBuilder(); var connectionString = configuration.GetConnectionString("DatabaseConnection"); builder.UseSqlite(connectionString); return new ApplicationDbContext(builder.Options); } } }