Используя EF 6.1, я хочу установить для внешнего ключа значение null (разорвать связь между двумя объектами) без предварительного запроса какого-либо объекта. Предпочтительно, я также не хочу указывать идентификатор связанного объекта (поскольку для этого требуется добавить его в мой HTML).
Мой текущий код не выполняет ненужных запросов, но требует идентификатор связанного объекта:
public void RemoveCurrentTeacherOfGroup(int groupId, int teacherId)
{
var group = new Group { Id = groupId };
var teacher = new Teacher { Id = teacherId };
group.Teacher = teacher;
_dataContext.Groups.Attach(group);
_dataContext.Teachers.Attach(teacher);
group.Teacher = null;
_dataContext.SaveChanges();
}
Однако мне не нужен идентификатор учителя, достаточно информации о группе.
Дополнительная информация: база данных была сгенерирована с использованием кода. Сущности определяются следующим образом:
public class Teacher
{
public int Id { get; set; }
..
public virtual List<Group> Groups { get; set; }
}
public class Group
{
public int Id { get; set; }
..
public virtual Teacher Teacher { get; set; }
}
Есть ли способ установить внешний ключ равным нулю без учителя Id?
Кроме того, большое спасибо за ответ, который делает код менее подробным, я чувствую, что это слишком много строк для чего-то такого простого, как установка внешнего ключа на ноль.