62 lines
3.1 KiB
C#
62 lines
3.1 KiB
C#
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
||
using Microsoft.EntityFrameworkCore;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace Demo.Data.RemoteData.RemoteDataBase
|
||
{
|
||
public class RemoteDatabaseContext : DbContext
|
||
{
|
||
|
||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||
{
|
||
optionsBuilder.UseNpgsql("Host=45.67.56.214;" +
|
||
"Port=5421;" +
|
||
"Username=user10;" +
|
||
"Database=user10;" +
|
||
"Password=FY1rOnvu");
|
||
}
|
||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||
{
|
||
// Настройка ключа и генерации GroupDao
|
||
modelBuilder.Entity<GroupDao>()
|
||
.HasKey(group => group.Id); // Устанавливаем Id как первичный ключ
|
||
modelBuilder.Entity<GroupDao>()
|
||
.Property(group => group.Id)
|
||
.ValueGeneratedOnAdd(); // Указываем, что Id будет автоматически генерироваться при добавлении
|
||
|
||
// Настройка ключа и генерации UserDao
|
||
modelBuilder.Entity<UserDao>()
|
||
.HasKey(user => user.Guid); // Устанавливаем Guid как первичный ключ
|
||
modelBuilder.Entity<UserDao>()
|
||
.Property(user => user.Guid)
|
||
.ValueGeneratedOnAdd(); // Указываем, что Guid будет автоматически генерироваться при добавлении
|
||
|
||
// Настройка составного ключа PresenceDao
|
||
modelBuilder.Entity<PresenceDao>()
|
||
.HasKey(presense => new // Определяем составной ключ
|
||
{
|
||
presense.UserGuid,
|
||
presense.Date,
|
||
presense.IsAttedance,
|
||
presense.LessonNumber
|
||
});
|
||
|
||
// Настройка связи между UserDao и PresenceDao
|
||
modelBuilder.Entity<PresenceDao>()
|
||
.HasOne(p => p.UserDao) // Указываем, что PresenceDao имеет одну связь с UserDao
|
||
.WithMany() // Указываем, что у UserDao может быть много записей PresenceDao
|
||
.HasForeignKey(p => p.UserGuid) // Указываем внешний ключ UserGuid
|
||
.OnDelete(DeleteBehavior.Cascade); // Указываем поведение при удалении (удаление связанных записей)
|
||
}
|
||
|
||
// Определение наборов данных для каждой сущности
|
||
public DbSet<GroupDao> Groups { get; set; } // Набор данных для GroupDao
|
||
public DbSet<UserDao> Users { get; set; } // Набор данных для UserDao
|
||
public DbSet<PresenceDao> PresenceDaos { get; set; } // Набор данных для PresenceDao
|
||
}
|
||
}
|