How should I seed data to many to many relation in Entity Framework Code first 5.0

前端 未结 2 919
说谎
说谎 2021-02-04 07:20

I am having my first steps in EF 5.0 I have a many to many relationship. Movie can Have multiple Types and Type can have multiple Movies

public class Movie
{
            


        
2条回答
  •  梦谈多话
    2021-02-04 07:43

    You need a joining table to implement a many-to-many relationship.

    For example, think of a scenario where students can enroll in multiple courses and a course can have mutiple students.

    Class structure would look like,

    class Course
    {  
      public int Id { get; set; }
      public string Name { get; set; }
    
    }
    
    class Student
    {  
      public int Id { get; set; }
      public string Name { get; set; }
    
    }
    
    class CourseStudent
    {  
      public int Id { get; set; }
      public int CourseId { get; set; }
      public int StudentId { get; set; }
      public Course Course { get; set; }
      public Student Student { get; set; }
    }
    

    To seed data, just create instances of the CourseStudent class and AddOrUpdate on the DbSet.

        var course1 = new Course { Name = "course1" };
        var course2 = new Course { Name = "course2" };
    
        var student1 = new Student { Name = "student1" };
        var student2 = new Student { Name = "student2" };
    
    context.CourseStudents.AddOrUpdate(r => r.Id,
                    new CourseStudent { Course = course1, Student = student1 },
                    new CourseStudent { Course = course1, Student = student2 },
                    new CourseStudent { Course = course2, Student = student1 },
                    new CourseStudent { Course = course2, Student = student2 });
    

提交回复
热议问题