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