public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public ICollection<Course> Courses { get; set; }
}
public class Course
{
public int CourseId { get; set; }
public string Title { get; set; }
public ICollection<Student> Students { get; set; }
}
public class YourDbContext : DbContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Course> Courses { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.HasMany(s => s.Courses)
.WithMany(c => c.Students)
.UsingEntity(j => j.ToTable("StudentCourses"));
SeedData(modelBuilder);
}
}
private void SeedData(ModelBuilder modelBuilder)
{
var students = new List<Student>
{
new Student { Name = "John Doe" },
new Student { Name = "Jane Smith" },
new Student { Name = "Michael Johnson" }
};
modelBuilder.Entity<Student>().HasData(students);
var courses = new List<Course>
{
new Course { Title = "Mathematics" },
new Course { Title = "History" },
new Course { Title = "Science" }
};
modelBuilder.Entity<Course>().HasData(courses);
var studentCourses = new List<object>
{
new { StudentsStudentId = 1, CoursesCourseId = 1 },
new { StudentsStudentId = 1, CoursesCourseId = 3 },
new { StudentsStudentId = 2, CoursesCourseId = 2 },
new { StudentsStudentId = 3, CoursesCourseId = 1 },
new { StudentsStudentId = 3, CoursesCourseId = 2 },
new { StudentsStudentId = 3, CoursesCourseId = 3 }
};
modelBuilder.Entity("StudentCourses").HasData(studentCourses);
}