溫馨提示×

net ef框架中實現多對多關系

小樊
134
2024-08-27 16:36:06
欄目: 編程語言

在.NET Entity Framework Core(EF Core)中,實現多對多關系需要遵循以下步驟:

  1. 定義實體類 首先,為多對多關系中的兩個實體創建類。例如,我們有StudentCourse實體,一個學生可以選修多門課程,一門課程也可以被多個學生選修。
public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public ICollection<StudentCourse> StudentCourses { get; set; }
}

public class Course
{
    public int Id { get; set; }
    public string Name { get; set; }

    public ICollection<StudentCourse> StudentCourses { get; set; }
}
  1. 創建關聯表實體 接下來,創建一個關聯表實體,它將包含兩個實體的外鍵。在這個例子中,我們創建一個名為StudentCourse的實體。
public class StudentCourse
{
    public int StudentId { get; set; }
    public Student Student { get; set; }

    public int CourseId { get; set; }
    public Course Course { get; set; }
}
  1. 配置多對多關系 在DbContext類中,使用ModelBuilder配置多對多關系。我們需要指定關聯表實體,并設置外鍵。
public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }
    public DbSet<StudentCourse> StudentCourses { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<StudentCourse>()
            .HasKey(sc => new { sc.StudentId, sc.CourseId });

        modelBuilder.Entity<StudentCourse>()
            .HasOne<Student>(sc => sc.Student)
            .WithMany(s => s.StudentCourses)
            .HasForeignKey(sc => sc.StudentId);

        modelBuilder.Entity<StudentCourse>()
            .HasOne<Course>(sc => sc.Course)
            .WithMany(c => c.StudentCourses)
            .HasForeignKey(sc => sc.CourseId);
    }
}

現在,你已經在EF Core中實現了多對多關系。你可以使用DbContext類來查詢、添加、更新和刪除相關數據。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女