45 lines
2.0 KiB
C#

using BankDatabaseImplement.Models;
using Microsoft.EntityFrameworkCore;
namespace BankDatabaseImplement
{
public class BankDatabase : DbContext
{
public BankDatabase(DbContextOptions<BankDatabase> options) : base(options)
{
}
protected override void OnConfiguring(
DbContextOptionsBuilder optionsBuilder)
{
if (optionsBuilder.IsConfigured == false)
{
optionsBuilder.UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=BankDatabase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
}
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Client>()
.HasKey(c => c.Snils);
modelBuilder.Entity<ClientDeposit>()
.HasKey(sc => new { sc.ClientSnils, sc.DepositId });
modelBuilder.Entity<ClientProgram>()
.HasKey(sc => new { sc.ClientSnils, sc.ProgramId });
modelBuilder.Entity<DepositCurrency>()
.HasKey(sc => new { sc.DepositId, sc.CurrencyId });
modelBuilder.Entity<ProgramCurrency>()
.HasKey(sc => new { sc.ProgramId, sc.CurrencyId });
}
public virtual DbSet<Client> Clients { set; get; }
public virtual DbSet<ClientProgram> ClientPrograms { set; get; }
public virtual DbSet<ClientDeposit> ClientDeposits { set; get; }
public virtual DbSet<Currency> Currencies { set; get; }
public virtual DbSet<Deposit> Deposits { set; get; }
public virtual DbSet<DepositCurrency> DepositCurrencies { set; get; }
public virtual DbSet<Program> Programs { set; get; }
public virtual DbSet<ProgramCurrency> ProgramCurrencies { set; get; }
public virtual DbSet<Refill> Refills { set; get; }
public virtual DbSet<Term> Terms { set; get; }
public virtual DbSet<Worker> Workers { set; get; }
}
}