From e632e9241e8afe530f6b37cb683b211769135c45 Mon Sep 17 00:00:00 2001 From: transtrike Date: Thu, 28 Jan 2021 01:08:31 +0200 Subject: USER UPDATE FIIIIIIXED --- src/DevHive.Data/DevHiveContext.cs | 41 ++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) (limited to 'src/DevHive.Data/DevHiveContext.cs') diff --git a/src/DevHive.Data/DevHiveContext.cs b/src/DevHive.Data/DevHiveContext.cs index 48a6789..40b2a42 100644 --- a/src/DevHive.Data/DevHiveContext.cs +++ b/src/DevHive.Data/DevHiveContext.cs @@ -1,5 +1,6 @@ using System; using DevHive.Data.Models; +using DevHive.Data.RelationModels; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; @@ -17,30 +18,50 @@ namespace DevHive.Data protected override void OnModelCreating(ModelBuilder builder) { + /* User */ builder.Entity() - .HasIndex(x => x.UserName) - .IsUnique(); + .HasKey(x => x.Id); builder.Entity() - .HasMany(x => x.Roles); + .HasIndex(x => x.UserName) + .IsUnique(); + /* Roles */ builder.Entity() - .HasMany(x => x.Friends); + .HasMany(x => x.Roles) + .WithMany(x => x.Users); - builder.Entity() - .HasMany(x => x.Languages); + /* Friends */ + builder.Entity() + .HasKey(uu => new { uu.UserId, uu.FriendId }); + /* Languages */ builder.Entity() - .HasMany(x => x.Users); + .HasKey(x => x.Id); builder.Entity() - .HasMany(x => x.Technologies); + .HasMany(x => x.Languages) + .WithMany(x => x.Users) + .UsingEntity(x => x.ToTable("LanguageUser")); + builder.Entity() + .HasMany(x => x.Users) + .WithMany(x => x.Languages) + .UsingEntity(x => x.ToTable("LanguageUser")); + + /* Technologies */ builder.Entity() - .HasMany(x => x.Users); + .HasKey(x => x.Id); builder.Entity() - .HasChangeTrackingStrategy(ChangeTrackingStrategy.Snapshot); + .HasMany(x => x.Technologies) + .WithMany(x => x.Users) + .UsingEntity(x => x.ToTable("TechnologyUser")); + + builder.Entity() + .HasMany(x => x.Users) + .WithMany(x => x.Technologies) + .UsingEntity(x => x.ToTable("TechnologyUser")); base.OnModelCreating(builder); } -- cgit v1.2.3