using Microsoft.EntityFrameworkCore; using WebAppServer1.Models; namespace WebAppServer1.ApplicationDbContext { public class AppDbContext :DbContext { public AppDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { // 好友关系双向约束 modelBuilder.Entity() .HasOne(f => f.User) .WithMany(u => u.Friends) .HasForeignKey(f => f.UserId) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasOne(f => f.FriendUser) .WithMany() .HasForeignKey(f => f.FriendId) .OnDelete(DeleteBehavior.Restrict); // 群成员约束 modelBuilder.Entity() .HasOne(gm => gm.Group) .WithMany(g => g.Members) .HasForeignKey(gm => gm.GroupId); modelBuilder.Entity() .HasOne(gm => gm.User) .WithMany() .HasForeignKey(gm => gm.UserId); // 消息约束 modelBuilder.Entity() .HasOne(m => m.Sender) .WithMany(u => u.Messages) .HasForeignKey(m => m.SenderId) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasOne(m => m.Receiver) .WithMany() .HasForeignKey(m => m.ReceiverId) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity() .HasOne(m => m.Group) .WithMany() .HasForeignKey(m => m.GroupId); } public DbSet Users { get; set; } public DbSet Friends { get; set; } public DbSet Groups { get; set; } public DbSet GroupMembers { get; set; } public DbSet Messages { get; set; } public DbSet Notifications { get; set; } public DbSet Files { get; set; } public DbSet Tokens { get; set; } public DbSet userProfileHistories { get; set; } public DbSet LoginRecords { get; set; } } }