2015-08-01 2 views
-1

Вот моя сущность каркасная структура:Как записать записи в связанную таблицу?

namespace TestMigration2 
{ 
    class EmployeeDBContext : DbContext 
    { 
     public EmployeeDBContext() : base("DefaultConnection") { } 
     public DbSet<Course> Courses { get; set; } 
     public DbSet<Student> Students { get; set; } 
    } 


    public class Student 
    { 
     [Key] 
     public int StudentID { get; set; } 
     public string StudentName { get; set; } 
     public virtual ICollection<Course> Courses { get; set; } 
    } 

    public class Course 
    { 
     [Key] 
     public int CourseID { get; set; } 
     public string CourseName { get; set; } 
     public virtual ICollection<Student> Students { get; set; } 
    } 
} 

Как я могу писать курсы, связанные с конкретным студентом с помощью LINQ?

ответ

1

Вам не нужно делать какие-либо причудливые работы. Просто

  1. Извлекает объект/объекты вы хотите изменить с помощью Где/Single и т.д.
  2. Измените сущность/enttities.
  3. Позволяет сохранять изменения в своем DbContext.

    using (var db = new EmployeeDbContext()) //NOTE: FOR THE LOVE OF GOD USE A REPOSITORY OR CONTEXT FACTORY OR SOMETHING TO MAKE SURE THAT THE LIFETIME OF YOUR CONTEXT IS MANAGED CORRECTLY. { var student = db.Students.Single(student => student.Id == 1); //Use your own condition here. foreach(var course in db.Courses.Where(course=>course.Id == 1)) //Use your own condition here { student.Courses.Add(course); } db.SaveChanges(); }

Концептуально, помогает помнить, что по большей части, EF DbSets только коллекции, с особой оговоркой, что вам нужно, чтобы сохранить изменения в явной мутировать своих членов.

Смежные вопросы