using District3API.domain; namespace District3API.DataBaseContext; using Microsoft.EntityFrameworkCore; public class DataContext: DbContext { public DataContext(DbContextOptions options) : base(options) { } public DbSet Account { get; set; } public DbSet BlockedProfile { get; set; } public DbSet CloseFriendProfile { get; set; } public DbSet? FancierProfile { get; set; } public DbSet Group { get; set; } public DbSet Highlight { get; set; } public DbSet Post { get; set; } public DbSet User { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(account => { account.HasKey(e => e.Id); account.HasOne(e => e.User) .WithOne() .HasForeignKey(e => e.UserId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity(blockedProfile => { blockedProfile.HasKey(e => e.Id); blockedProfile.HasOne(e => e.User) .WithOne() .HasForeignKey(e => e.UserId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity(closeFriendProfile => { closeFriendProfile.HasKey(e => e.Id); closeFriendProfile.HasOne(e => e.User) .WithOne() .HasForeignKey(e => e.UserId) .OnDelete(DeleteBehavior.Restrict); }); modelBuilder.Entity().HasKey(x => x.ProfileId); modelBuilder.Entity(group => { group.HasKey(e => e.Id); }); modelBuilder.Entity(highlight => { highlight.HasKey(e => e.HighlightId); highlight.HasOne(e => e.User) .WithMany() .HasForeignKey(e => e.UserId); }); modelBuilder.Entity().HasKey(x => x.Id); modelBuilder.Entity(user => { user.HasKey(e => e.Id); user.HasOne(e => e.Group) .WithMany(g => g.GroupMembers) .HasForeignKey(e => e.GroupId); }); } }