pr1/Demo/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs
2024-11-17 19:24:01 +03:00

62 lines
3.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}