public class Student { public int StudentId { get; set; } public string StudentName { get; set; }
public ICollection CourseStudents { get; set; }
}
public class Course { public int CourseId { get; set; } public string CourseName { get; set; }
public ICollection CourseStudents { get; set; }
}
public class CourseStudent { public int CourseId { get; set; } public Course Course { get; set; }
public int StudentId { get; set; }
public Student Student { get; set; }
}
public class SchoolContext : DbContext
{
public DbSet
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasKey(cs => new { cs.CourseId, cs.StudentId });
modelBuilder.Entity()
.HasOne(cs => cs.Course)
.WithMany(c => c.CourseStudents)
.HasForeignKey(cs => cs.CourseId);
modelBuilder.Entity()
.HasOne(cs => cs.Student)
.WithMany(s => s.CourseStudents)
.HasForeignKey(cs => cs.StudentId);
}
}
public IActionResult AddCourseToStudent(int courseId, int studentId) { var courseStudent = new CourseStudent { CourseId = courseId, StudentId = studentId };
_context.CourseStudents.Add(courseStudent);
_context.SaveChanges();
return RedirectToAction("Index");
}
在上面的例子中,Controller接收两个参数:courseId和studentId,用于创建新的多对多关系对象。然后,通过添加