Skip to content

Instantly share code, notes, and snippets.

@TheFo2sh
Created June 9, 2020 21:29
Show Gist options
  • Save TheFo2sh/4f1bdac9a82249da25f4ec060fd4d4d0 to your computer and use it in GitHub Desktop.
Save TheFo2sh/4f1bdac9a82249da25f4ec060fd4d4d0 to your computer and use it in GitHub Desktop.
using Microsoft.EntityFrameworkCore;
using TimeTable.Core.Models;
namespace TimeTableServer.Context
{
public class DataContext : DbContext
{
public DbSet<StudentCourse> StudentCourse { get; set; }
public DbSet<Student> Students { get; set; }
public DbSet<Teacher> Teachers { get; set; }
public DbSet<Course> Courses { get; set; }
public DbSet<Place> Places { get; set; }
public DbSet<TimeSlot> TimeSlots { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
@"Server=(localdb)\ProjectsV13;Database=TimeTableDb;Integrated Security=True");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<StudentCourse>().HasKey("StudentId", "CourseId");
modelBuilder.Entity<Student>().HasMany(student => student.Courses);
modelBuilder.Entity<Course>().HasMany(course => course.Students);
modelBuilder.Entity<Student>().HasMany<TimeSlot>(student => student.TimeSlots);
modelBuilder.Entity<TimeSlot>().HasMany<Student>(slot => slot.Students);
base.OnModelCreating(modelBuilder);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment