вставить, удалить, обновить (отношение «многие ко многим») - PullRequest
0 голосов
/ 06 марта 2012

в http://msdn.microsoft.com/en-us/library/dd742359.aspx описано отношение «многие-ко-многим».

теперь как выполнять вставку, удаление, обновление CourseInstructo؟

для отношений один-к-мужу. Так я делаю:

var  context= new Modle2();
var course= new Course() {title="math",...};
context.Course.addObject(course);
context.SaveChanges()

1 Ответ

0 голосов
/ 06 марта 2012

Вы можете использовать свойство навигации на любом конце, чтобы управлять отношением «многие ко многим». Например,

using (var context = new Model2())
{
    int courseID = 4022;
    var course = (from c in context.Courses
                 where c.CourseID == courseID
                 select c).First();

    int personID = 17;
    var instructor = (from p in context.Person
                  where p.PersonID == personID
                  select p).First();

    course.Person.Add(instructor);
    // alternatively, this will also do - instructor.Course.Add(course);
    context.SaveChanges();
}

Для удаления используйте аналогичную логику - например,

using (var context = new Model2())
{
    int courseID = 4022;
    var course = (from c in context.Courses
                 where c.CourseID == courseID
                 select c).First();

    int personID = 17;
    var instructor = (from p in context.Person
                  where p.PersonID == personID
                  select p).First();

    course.Person.Remove(instructor);
    context.SaveChanges();
}

Обновление не имеет смысла для отношений «многие ко многим» - оно по существу добавляет и удаляет комбинацию.

...