Files
WinFormDiApp/WinFormDiApp.DAL/ApplicationDbContext.cs
2023-09-04 12:29:03 +02:00

45 lines
1.5 KiB
C#

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<ApplicationDbContext> options) : base(options) { }
public virtual DbSet<Member> Members { get; set; }
public virtual DbSet<AccountRecord> AccountRecords { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<AccountRecord>()
.HasIndex(e => new
{
e.BetalDatum,
e.Belopp,
e.Konto
})
.IsUnique();
}
}
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
public ApplicationDbContext CreateDbContext(string[] args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(@Directory.GetCurrentDirectory() + "/../WinFormDi/appsettings.json")
.Build();
var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
var connectionString = configuration.GetConnectionString("DatabaseConnection");
builder.UseSqlite(connectionString);
return new ApplicationDbContext(builder.Options);
}
}
}