Mega_New_Presence/presence_new/Data/RemoteData/RemoteDataBase/RemoteDatabaseContext.cs

45 lines
1.8 KiB
C#
Raw Normal View History

2024-11-01 07:40:53 +00:00
using Demo.Data.RemoteData.RemoteDataBase.DAO;
using Microsoft.EntityFrameworkCore;
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=user15;Database=user15;Password=3XkvwMOb");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Настройка ключа и автоматической генерации для GroupDao
modelBuilder.Entity<GroupDao>().HasKey(group => group.Id);
modelBuilder.Entity<GroupDao>().Property(group => group.Id).ValueGeneratedOnAdd();
// Настройка ключа и автоматической генерации для UserDao
modelBuilder.Entity<UserDao>().HasKey(user => user.Guid);
modelBuilder.Entity<UserDao>().Property(user => user.Guid).ValueGeneratedOnAdd();
// Настройка составного ключа для PresenceDao
modelBuilder.Entity<PresenceDao>().HasKey(presense => new
{
presense.UserGuid,
presense.Date,
presense.IsAttedance,
presense.LessonNumber
});
// Настройка связи UserDao с PresenceDao
modelBuilder.Entity<PresenceDao>()
.HasOne(p => p.UserDao)
.WithMany()
.HasForeignKey(p => p.UserGuid)
.OnDelete(DeleteBehavior.Cascade);
}
public DbSet<GroupDao> Groups { get; set; }
public DbSet<UserDao> Users { get; set; }
public DbSet<PresenceDao> PresenceDaos { get; set; }
}
}