删除作为模型字段的集合元素

时间:2018-04-03 11:41:23

标签: c# entity-framework orm

我有非常简单的模型,我想修改(删除)一个元​​素 集合,这是其中之一的财产。

public class Student
{
   [Key]
   [Column(Order = 1)]
   public int Id { get; set; }
   public string FirstName { get; set; }
   public string SecondName { get; set; }
   public int DepartamentID { get; set; }
}

public class Departament
{
   [Key]
   [Column(Order = 1)]
   public int Id { get; set; }
   public string Title { get; set; }
   public virtual ICollection<Student> Students { get; set; }
}

private void Remove(List<int> IDsOfStudentsToRemove)
{
    foreach (int id in IDsOfStudentsToRemove)
    {
       var Student = StudentContext.Students.Find(id);

       var Departament = DepartamentsContext
            .Departaments.Find(Student.DepartamentID);

       // That's what I'd want to achieve:
       // Remove student from Departament's Students collection
       // then remove student from Students Table

       Departament.Students.Remove(Student);
       StudentContext.Students.Remove(Student);
    }

    StudentContext.SaveChanges();
    DepartamentContext.SaveChanges();
}

但那是我收到的错误

  

System.InvalidOperationException:&#39;操作失败:   由于一个或多个关系无法改变   外键属性是不可为空的。当对a进行更改时   关系,相关的外键属性设置为空值。   如果外键不支持空值,则为新关系   必须定义外键属性必须另外分配   必须删除非空值或不相关的对象。&#39;

非常相似的主题:

The relationship could not be changed because one or more of the foreign-key properties is non-nullable

提前致谢

0 个答案:

没有答案