подключился к БД
This commit is contained in:
parent
ae7685323e
commit
e66bd33dcb
22
SUBD/ElectronicJournalDatabaseImplement/Discipline.cs
Normal file
22
SUBD/ElectronicJournalDatabaseImplement/Discipline.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по дисциплинам. Содержит два поля: id (тип integer), название (тип varchar).
|
||||
/// </summary>
|
||||
public partial class Discipline
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор дисциплины
|
||||
/// </summary>
|
||||
public int DisciplineId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<Statement> Statements { get; } = new List<Statement>();
|
||||
}
|
@ -0,0 +1,205 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
public partial class ElectronicJournalContext : DbContext
|
||||
{
|
||||
public ElectronicJournalContext()
|
||||
{
|
||||
}
|
||||
|
||||
public ElectronicJournalContext(DbContextOptions<ElectronicJournalContext> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual DbSet<Discipline> Disciplines { get; set; }
|
||||
|
||||
public virtual DbSet<Group> Groups { get; set; }
|
||||
|
||||
public virtual DbSet<ResultOfControl> ResultOfControls { get; set; }
|
||||
|
||||
public virtual DbSet<Statement> Statements { get; set; }
|
||||
|
||||
public virtual DbSet<Student> Students { get; set; }
|
||||
|
||||
public virtual DbSet<Teacher> Teachers { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
=> optionsBuilder.UseNpgsql("Host=192.168.56.101;Port=5432;Database=ElectronicJournal;Username=postgres;Password=qazwsx");
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<Discipline>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.DisciplineId).HasName("Discipline_pkey");
|
||||
|
||||
entity.ToTable("Discipline", tb => tb.HasComment("Данная таблица отвечает за хранение данных по дисциплинам. Содержит два поля: id (тип integer), название (тип varchar)."));
|
||||
|
||||
entity.Property(e => e.DisciplineId)
|
||||
.HasDefaultValueSql("nextval('sequence_discipline'::regclass)")
|
||||
.HasComment("Идентификатор дисциплины")
|
||||
.HasColumnName("discipline_id");
|
||||
entity.Property(e => e.Title)
|
||||
.HasMaxLength(255)
|
||||
.HasComment("Название")
|
||||
.HasColumnName("title");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Group>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.GroupId).HasName("Group_pkey");
|
||||
|
||||
entity.ToTable("Group", tb => tb.HasComment("Данная таблица отвечает за хранение данных по группам. Содержит три поля: id (тип integer), название (тип varchar), курс (тип integer)."));
|
||||
|
||||
entity.Property(e => e.GroupId)
|
||||
.HasDefaultValueSql("nextval('sequence_group'::regclass)")
|
||||
.HasComment("Идентификатор группы")
|
||||
.HasColumnName("group_id");
|
||||
entity.Property(e => e.Course)
|
||||
.HasDefaultValueSql("1")
|
||||
.HasComment("Курс")
|
||||
.HasColumnName("course");
|
||||
entity.Property(e => e.Title)
|
||||
.HasMaxLength(12)
|
||||
.HasComment("Название")
|
||||
.HasColumnName("title");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<ResultOfControl>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.ResultOfControlId).HasName("Result_of_control_pkey");
|
||||
|
||||
entity.ToTable("Result_of_control", tb => tb.HasComment("Данная таблица отвечает за хранение данных по результатам контроля. Содержит шесть полей: id (тип integer), форма контроля (тип varchar), дата (тип date), оценка (тип varchar), внешний ключ на студента (тип integer), внешний ключ на ведомость (тип integer)."));
|
||||
|
||||
entity.Property(e => e.ResultOfControlId)
|
||||
.HasDefaultValueSql("nextval('sequence_result_of_control'::regclass)")
|
||||
.HasComment("Идентификатор результата контроля")
|
||||
.HasColumnName("result_of_control_id");
|
||||
entity.Property(e => e.Date)
|
||||
.HasComment("Дата")
|
||||
.HasColumnName("date");
|
||||
entity.Property(e => e.Form)
|
||||
.HasMaxLength(255)
|
||||
.HasDefaultValueSql("'зачет'::character varying")
|
||||
.HasComment("Форма контроля")
|
||||
.HasColumnName("form");
|
||||
entity.Property(e => e.Mark)
|
||||
.HasMaxLength(255)
|
||||
.HasDefaultValueSql("'не зачтено'::character varying")
|
||||
.HasComment("Оценка")
|
||||
.HasColumnName("mark");
|
||||
entity.Property(e => e.StatementId)
|
||||
.HasComment("Внешний ключ на ведомость")
|
||||
.HasColumnName("statement_id");
|
||||
entity.Property(e => e.StudentId)
|
||||
.HasComment("Внешний ключ на студента")
|
||||
.HasColumnName("student_id");
|
||||
|
||||
entity.HasOne(d => d.Statement).WithMany(p => p.ResultOfControls)
|
||||
.HasForeignKey(d => d.StatementId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Result_of_control_statement_id_fkey");
|
||||
|
||||
entity.HasOne(d => d.Student).WithMany(p => p.ResultOfControls)
|
||||
.HasForeignKey(d => d.StudentId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Result_of_control_student_id_fkey");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Statement>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.StatementId).HasName("Statement_pkey");
|
||||
|
||||
entity.ToTable("Statement", tb => tb.HasComment("Данная таблица отвечает за хранение данных по ведомостям. Содержит пять полей: id (тип integer), дата (тип date), внешний ключ на дисциплину (тип integer), внешний ключ на группу (тип integer), внешний ключ на преподавателя (тип integer)."));
|
||||
|
||||
entity.Property(e => e.StatementId)
|
||||
.HasDefaultValueSql("nextval('sequence_statement'::regclass)")
|
||||
.HasComment("Идентификатор ведомости")
|
||||
.HasColumnName("statement_id");
|
||||
entity.Property(e => e.Date)
|
||||
.HasComment("Дата")
|
||||
.HasColumnName("date");
|
||||
entity.Property(e => e.DisciplineId)
|
||||
.HasComment("Внешний ключ на дисциплину")
|
||||
.HasColumnName("discipline_id");
|
||||
entity.Property(e => e.GroupId)
|
||||
.HasComment("Внешний ключ на группу")
|
||||
.HasColumnName("group_id");
|
||||
entity.Property(e => e.TeacherId)
|
||||
.HasComment("Внешний ключ на преподавателя")
|
||||
.HasColumnName("teacher_id");
|
||||
|
||||
entity.HasOne(d => d.Discipline).WithMany(p => p.Statements)
|
||||
.HasForeignKey(d => d.DisciplineId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Statement_discipline_id_fkey");
|
||||
|
||||
entity.HasOne(d => d.Group).WithMany(p => p.Statements)
|
||||
.HasForeignKey(d => d.GroupId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Statement_group_id_fkey");
|
||||
|
||||
entity.HasOne(d => d.Teacher).WithMany(p => p.Statements)
|
||||
.HasForeignKey(d => d.TeacherId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Statement_teacher_id_fkey");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Student>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.StudentId).HasName("Student_pkey");
|
||||
|
||||
entity.ToTable("Student", tb => tb.HasComment("Данная таблица отвечает за хранение данных по студентам. Содержит три поля: id (тип integer), имя (тип varchar), внешний ключ на группу (тип integer)."));
|
||||
|
||||
entity.Property(e => e.StudentId)
|
||||
.HasDefaultValueSql("nextval('sequence_student'::regclass)")
|
||||
.HasComment("Идентификатор студента")
|
||||
.HasColumnName("student_id");
|
||||
entity.Property(e => e.GroupId)
|
||||
.HasComment("Внешний ключ на группу")
|
||||
.HasColumnName("group_id");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(255)
|
||||
.HasComment("Имя")
|
||||
.HasColumnName("name");
|
||||
|
||||
entity.HasOne(d => d.Group).WithMany(p => p.Students)
|
||||
.HasForeignKey(d => d.GroupId)
|
||||
.OnDelete(DeleteBehavior.Restrict)
|
||||
.HasConstraintName("Student_group_id_fkey");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Teacher>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.TeacherId).HasName("Teacher_pkey");
|
||||
|
||||
entity.ToTable("Teacher", tb => tb.HasComment("Данная таблица отвечает за хранение данных по преподавателям. Содержит три поля: id (тип integer), имя (тип varchar), ученое звание (тип integer)."));
|
||||
|
||||
entity.Property(e => e.TeacherId)
|
||||
.HasDefaultValueSql("nextval('sequence_teacher'::regclass)")
|
||||
.HasComment("Идентификатор преподавателя")
|
||||
.HasColumnName("teacher_id");
|
||||
entity.Property(e => e.AcademicTitle)
|
||||
.HasMaxLength(255)
|
||||
.HasComment("Ученое звание")
|
||||
.HasColumnName("academic_title");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(255)
|
||||
.HasComment("Имя")
|
||||
.HasColumnName("name");
|
||||
});
|
||||
modelBuilder.HasSequence("sequence_discipline");
|
||||
modelBuilder.HasSequence("sequence_group");
|
||||
modelBuilder.HasSequence("sequence_result_of_control");
|
||||
modelBuilder.HasSequence("sequence_statement");
|
||||
modelBuilder.HasSequence("sequence_student");
|
||||
modelBuilder.HasSequence("sequence_teacher");
|
||||
|
||||
OnModelCreatingPartial(modelBuilder);
|
||||
}
|
||||
|
||||
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="EntityFramework" Version="6.4.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ElectronicJournalContracts\ElectronicJournalContracts.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
29
SUBD/ElectronicJournalDatabaseImplement/Group.cs
Normal file
29
SUBD/ElectronicJournalDatabaseImplement/Group.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по группам. Содержит три поля: id (тип integer), название (тип varchar), курс (тип integer).
|
||||
/// </summary>
|
||||
public partial class Group
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор группы
|
||||
/// </summary>
|
||||
public int GroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Название
|
||||
/// </summary>
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Курс
|
||||
/// </summary>
|
||||
public int Course { get; set; }
|
||||
|
||||
public virtual ICollection<Statement> Statements { get; } = new List<Statement>();
|
||||
|
||||
public virtual ICollection<Student> Students { get; } = new List<Student>();
|
||||
}
|
44
SUBD/ElectronicJournalDatabaseImplement/ResultOfControl.cs
Normal file
44
SUBD/ElectronicJournalDatabaseImplement/ResultOfControl.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по результатам контроля. Содержит шесть полей: id (тип integer), форма контроля (тип varchar), дата (тип date), оценка (тип varchar), внешний ключ на студента (тип integer), внешний ключ на ведомость (тип integer).
|
||||
/// </summary>
|
||||
public partial class ResultOfControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор результата контроля
|
||||
/// </summary>
|
||||
public int ResultOfControlId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Форма контроля
|
||||
/// </summary>
|
||||
public string Form { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Дата
|
||||
/// </summary>
|
||||
public DateOnly Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Оценка
|
||||
/// </summary>
|
||||
public string Mark { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на студента
|
||||
/// </summary>
|
||||
public int StudentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на ведомость
|
||||
/// </summary>
|
||||
public int StatementId { get; set; }
|
||||
|
||||
public virtual Statement Statement { get; set; } = null!;
|
||||
|
||||
public virtual Student Student { get; set; } = null!;
|
||||
}
|
43
SUBD/ElectronicJournalDatabaseImplement/Statement.cs
Normal file
43
SUBD/ElectronicJournalDatabaseImplement/Statement.cs
Normal file
@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по ведомостям. Содержит пять полей: id (тип integer), дата (тип date), внешний ключ на дисциплину (тип integer), внешний ключ на группу (тип integer), внешний ключ на преподавателя (тип integer).
|
||||
/// </summary>
|
||||
public partial class Statement
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор ведомости
|
||||
/// </summary>
|
||||
public int StatementId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата
|
||||
/// </summary>
|
||||
public DateOnly Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на дисциплину
|
||||
/// </summary>
|
||||
public int DisciplineId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на группу
|
||||
/// </summary>
|
||||
public int GroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на преподавателя
|
||||
/// </summary>
|
||||
public int TeacherId { get; set; }
|
||||
|
||||
public virtual Discipline Discipline { get; set; } = null!;
|
||||
|
||||
public virtual Group Group { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<ResultOfControl> ResultOfControls { get; } = new List<ResultOfControl>();
|
||||
|
||||
public virtual Teacher Teacher { get; set; } = null!;
|
||||
}
|
29
SUBD/ElectronicJournalDatabaseImplement/Student.cs
Normal file
29
SUBD/ElectronicJournalDatabaseImplement/Student.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по студентам. Содержит три поля: id (тип integer), имя (тип varchar), внешний ключ на группу (тип integer).
|
||||
/// </summary>
|
||||
public partial class Student
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор студента
|
||||
/// </summary>
|
||||
public int StudentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Внешний ключ на группу
|
||||
/// </summary>
|
||||
public int GroupId { get; set; }
|
||||
|
||||
public virtual Group Group { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<ResultOfControl> ResultOfControls { get; } = new List<ResultOfControl>();
|
||||
}
|
27
SUBD/ElectronicJournalDatabaseImplement/Teacher.cs
Normal file
27
SUBD/ElectronicJournalDatabaseImplement/Teacher.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ElectronicJournalDatabaseImplement;
|
||||
|
||||
/// <summary>
|
||||
/// Данная таблица отвечает за хранение данных по преподавателям. Содержит три поля: id (тип integer), имя (тип varchar), ученое звание (тип integer).
|
||||
/// </summary>
|
||||
public partial class Teacher
|
||||
{
|
||||
/// <summary>
|
||||
/// Идентификатор преподавателя
|
||||
/// </summary>
|
||||
public int TeacherId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Имя
|
||||
/// </summary>
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// Ученое звание
|
||||
/// </summary>
|
||||
public string? AcademicTitle { get; set; }
|
||||
|
||||
public virtual ICollection<Statement> Statements { get; } = new List<Statement>();
|
||||
}
|
@ -9,6 +9,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElectronicJournalDataModels
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElectronicJournalContracts", "ElectronicJournalContracts\ElectronicJournalContracts.csproj", "{374D708E-00B2-4680-8F92-F88173620B09}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElectronicJournalDatabaseImplement", "ElectronicJournalDatabaseImplement\ElectronicJournalDatabaseImplement.csproj", "{E8170BDE-E00D-4BE3-B62E-C42136C1EB15}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -27,6 +29,10 @@ Global
|
||||
{374D708E-00B2-4680-8F92-F88173620B09}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{374D708E-00B2-4680-8F92-F88173620B09}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{374D708E-00B2-4680-8F92-F88173620B09}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E8170BDE-E00D-4BE3-B62E-C42136C1EB15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E8170BDE-E00D-4BE3-B62E-C42136C1EB15}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E8170BDE-E00D-4BE3-B62E-C42136C1EB15}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E8170BDE-E00D-4BE3-B62E-C42136C1EB15}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -8,4 +8,15 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\ElectronicJournalDatabaseImplement\ElectronicJournalDatabaseImplement.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user