using Microsoft.EntityFrameworkCore; using System.Configuration; namespace BeautySaloonDatabaseImplement; public partial class NewdbContext : DbContext { public NewdbContext() { } public NewdbContext(DbContextOptions options) : base(options) { } public virtual DbSet Clients { get; set; } public virtual DbSet Employees { get; set; } public virtual DbSet Orders { get; set; } public virtual DbSet Positions { get; set; } public virtual DbSet Services { get; set; } public virtual DbSet ServiceOrders { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { string connectString = ConfigurationManager.AppSettings["connect"]!; optionsBuilder.UseNpgsql(connectString); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("client_pkey"); entity.ToTable("clients", tb => tb.HasComment("Сущность клиенты")); entity.Property(e => e.Id) .ValueGeneratedNever() .HasComment("Уникальный идентификатор") .HasColumnName("id"); entity.Property(e => e.Name) .HasMaxLength(40) .HasComment("Имя") .HasColumnName("name"); entity.Property(e => e.Patronymic) .HasMaxLength(40) .HasDefaultValueSql("'Отсутствует'::character varying") .HasComment("Отчество") .HasColumnName("patronymic"); entity.Property(e => e.Phone) .HasMaxLength(11) .HasComment("Номер телефона") .HasColumnName("phone"); entity.Property(e => e.Surname) .HasMaxLength(40) .HasComment("Фамилия") .HasColumnName("surname"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("employee_pkey"); entity.ToTable("employees", tb => tb.HasComment("Сущность сотрудники")); entity.Property(e => e.Id) .ValueGeneratedNever() .HasComment("Уникальный идентификатор") .HasColumnName("id"); entity.Property(e => e.Name) .HasMaxLength(40) .HasComment("Имя") .HasColumnName("name"); entity.Property(e => e.Patronymic) .HasMaxLength(40) .HasDefaultValueSql("'Отсутствует'::character varying") .HasComment("Отчество") .HasColumnName("patronymic"); entity.Property(e => e.Phone) .HasMaxLength(11) .HasComment("Номер телефона") .HasColumnName("phone"); entity.Property(e => e.PositionId) .HasComment("Идентификатор позиции") .HasColumnName("position_id"); entity.Property(e => e.Surname) .HasMaxLength(40) .HasComment("Фамилия") .HasColumnName("surname"); entity.HasOne(d => d.Position).WithMany(p => p.Employees) .HasForeignKey(d => d.PositionId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("position_fk"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("order_table_pkey"); entity.ToTable("orders", tb => tb.HasComment("Сущность заказы")); entity.Property(e => e.Id) .ValueGeneratedNever() .HasComment("Уникальный идентификатор") .HasColumnName("id"); entity.Property(e => e.ClientId) .HasComment("Идентификатор клиента") .HasColumnName("client_id"); entity.Property(e => e.Date) .HasComment("Дата") .HasColumnName("date"); entity.Property(e => e.EmployeeId) .HasComment("Идентификатор сотрудника") .HasColumnName("employee_id"); entity.Property(e => e.Sum) .HasPrecision(6, 2) .HasComment("Сумма") .HasColumnName("sum"); entity.HasOne(d => d.Client).WithMany(p => p.Orders) .HasForeignKey(d => d.ClientId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("client_fk"); entity.HasOne(d => d.Employee).WithMany(p => p.Orders) .HasForeignKey(d => d.EmployeeId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("employee_fk"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("position_pkey"); entity.ToTable("positions", tb => tb.HasComment("Сущность позиции")); entity.Property(e => e.Id) .ValueGeneratedNever() .HasComment("Идентификатор") .HasColumnName("id"); entity.Property(e => e.Name) .HasMaxLength(40) .HasComment("Название") .HasColumnName("name"); }); modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("service_pkey"); entity.ToTable("services", tb => tb.HasComment("Сущность услуги")); entity.Property(e => e.Id) .ValueGeneratedNever() .HasComment("Уникальный идентификатор") .HasColumnName("id"); entity.Property(e => e.Name) .HasMaxLength(100) .HasComment("Название") .HasColumnName("name"); entity.Property(e => e.Price) .HasPrecision(6, 2) .HasComment("Цена") .HasColumnName("price"); }); modelBuilder.Entity(entity => { entity.HasKey(e => new { e.ServiceId, e.OrderId }).HasName("service_order_pkey"); entity.ToTable("service_order", tb => tb.HasComment("Сущность-связь услуги с заказом")); entity.Property(e => e.ServiceId) .HasComment("Составной первичный ключ: идентификатор услуги") .HasColumnName("service_id"); entity.Property(e => e.OrderId) .HasComment("Составной первичный ключ: идентификатор заказа") .HasColumnName("order_id"); entity.Property(e => e.Date) .HasPrecision(6) .HasComment("Время") .HasColumnName("date"); entity.Property(e => e.EmployeeId) .HasComment("Идентификатор сотрудника") .HasColumnName("employee_id"); entity.HasOne(d => d.Employee).WithMany(p => p.ServiceOrders) .HasForeignKey(d => d.EmployeeId) .OnDelete(DeleteBehavior.Restrict) .HasConstraintName("service_order_employee_id_fkey"); entity.HasOne(d => d.Order).WithMany(p => p.ServiceOrders) .HasForeignKey(d => d.OrderId) .OnDelete(DeleteBehavior.Restrict) .HasConstraintName("service_order_order_id_fkey"); entity.HasOne(d => d.Service).WithMany(p => p.ServiceOrders) .HasForeignKey(d => d.ServiceId) .OnDelete(DeleteBehavior.Restrict) .HasConstraintName("service_order_service_id_fkey"); }); OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); }