添加项目文件。
This commit is contained in:
64
ApplicationDbContext/ApplicationDbContext.cs
Normal file
64
ApplicationDbContext/ApplicationDbContext.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using WebAppServer1.Models;
|
||||
|
||||
namespace WebAppServer1.ApplicationDbContext
|
||||
{
|
||||
public class AppDbContext :DbContext
|
||||
{
|
||||
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
// 好友关系双向约束
|
||||
modelBuilder.Entity<Friend>()
|
||||
.HasOne(f => f.User)
|
||||
.WithMany(u => u.Friends)
|
||||
.HasForeignKey(f => f.UserId)
|
||||
.OnDelete(DeleteBehavior.Restrict);
|
||||
|
||||
modelBuilder.Entity<Friend>()
|
||||
.HasOne(f => f.FriendUser)
|
||||
.WithMany()
|
||||
.HasForeignKey(f => f.FriendId)
|
||||
.OnDelete(DeleteBehavior.Restrict);
|
||||
|
||||
// 群成员约束
|
||||
modelBuilder.Entity<GroupMember>()
|
||||
.HasOne(gm => gm.Group)
|
||||
.WithMany(g => g.Members)
|
||||
.HasForeignKey(gm => gm.GroupId);
|
||||
|
||||
modelBuilder.Entity<GroupMember>()
|
||||
.HasOne(gm => gm.User)
|
||||
.WithMany()
|
||||
.HasForeignKey(gm => gm.UserId);
|
||||
|
||||
// 消息约束
|
||||
modelBuilder.Entity<Message>()
|
||||
.HasOne(m => m.Sender)
|
||||
.WithMany(u => u.Messages)
|
||||
.HasForeignKey(m => m.SenderId)
|
||||
.OnDelete(DeleteBehavior.Restrict);
|
||||
|
||||
modelBuilder.Entity<Message>()
|
||||
.HasOne(m => m.Receiver)
|
||||
.WithMany()
|
||||
.HasForeignKey(m => m.ReceiverId)
|
||||
.OnDelete(DeleteBehavior.Restrict);
|
||||
|
||||
modelBuilder.Entity<Message>()
|
||||
.HasOne(m => m.Group)
|
||||
.WithMany()
|
||||
.HasForeignKey(m => m.GroupId);
|
||||
}
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<Friend> Friends { get; set; }
|
||||
public DbSet<Group> Groups { get; set; }
|
||||
public DbSet<GroupMember> GroupMembers { get; set; }
|
||||
public DbSet<Message> Messages { get; set; }
|
||||
public DbSet<Notification> Notifications { get; set; }
|
||||
public DbSet<FileEntity> Files { get; set; }
|
||||
public DbSet<Tokens> Tokens { get; set; }
|
||||
public DbSet<UserProfileHistory> userProfileHistories { get; set; }
|
||||
public DbSet<LoginRecord> LoginRecords { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user